object general: Tgeneral
  Left = 0
  Top = 0
  Width = 760
  Height = 290
  TabOrder = 0
  Visible = False
  object jquery: TMemo
    Left = 72
    Top = 40
    Width = 185
    Height = 89
    Lines.Strings = (
      '/*!'
      ' * jQuery JavaScript Library v1.4.4'
      ' * http://jquery.com/'
      ' *'
      ' * Copyright 2010, John Resig'
      ' * Dual licensed under the MIT or GPL Version 2 licenses.'
      ' * http://jquery.org/license'
      ' *'
      ' * Includes Sizzle.js'
      ' * http://sizzlejs.com/'
      ' * Copyright 2010, The Dojo Foundation'
      ' * Released under the MIT, BSD, and GPL Licenses.'
      ' *'
      ' * Date: Thu Nov 11 19:04:53 2010 -0500'
      ' */'
      '(function( window, undefined ) {'
      ''
      
        '// Use the correct document accordingly with window argument (sa' +
        'ndbox)'
      'var document = window.document;'
      'var jQuery = (function() {'
      ''
      '// Define a local copy of jQuery'
      'var jQuery = function( selector, context ) {'
      
        #9#9'// The jQuery object is actually just the init constructor '#39'en' +
        'hanced'#39
      #9#9'return new jQuery.fn.init( selector, context );'
      #9'},'
      ''
      #9'// Map over jQuery in case of overwrite'
      #9'_jQuery = window.jQuery,'
      ''
      #9'// Map over the $ in case of overwrite'
      #9'_$ = window.$,'
      ''
      #9'// A central reference to the root jQuery(document)'
      #9'rootjQuery,'
      ''
      #9'// A simple way to check for HTML strings or ID strings'
      #9'// (both of which we optimize for)'
      #9'quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,'
      ''
      #9'// Is it a simple selector'
      #9'isSimple = /^.[^:#\[\.,]*$/,'
      ''
      #9'// Check if a string has a non-whitespace character in it'
      #9'rnotwhite = /\S/,'
      #9'rwhite = /\s/,'
      ''
      #9'// Used for trimming whitespace'
      #9'trimLeft = /^\s+/,'
      #9'trimRight = /\s+$/,'
      ''
      #9'// Check for non-word characters'
      #9'rnonword = /\W/,'
      ''
      #9'// Check for digits'
      #9'rdigit = /\d/,'
      ''
      #9'// Match a standalone tag'
      #9'rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,'
      ''
      #9'// JSON RegExp'
      #9'rvalidchars = /^[\],:{}\s]*$/,'
      #9'rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'
      
        #9'rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?' +
        ':[eE][+\-]?\d+)?/g,'
      #9'rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,'
      ''
      #9'// Useragent RegExp'
      #9'rwebkit = /(webkit)[ \/]([\w.]+)/,'
      #9'ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,'
      #9'rmsie = /(msie) ([\w.]+)/,'
      #9'rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,'
      ''
      #9'// Keep a UserAgent string for use with jQuery.browser'
      #9'userAgent = navigator.userAgent,'
      ''
      #9'// For matching the engine and version of the browser'
      #9'browserMatch,'
      #9
      #9'// Has the ready events already been bound?'
      #9'readyBound = false,'
      #9
      #9'// The functions to execute on DOM ready'
      #9'readyList = [],'
      ''
      #9'// The ready event handler'
      #9'DOMContentLoaded,'
      ''
      #9'// Save a reference to some core methods'
      #9'toString = Object.prototype.toString,'
      #9'hasOwn = Object.prototype.hasOwnProperty,'
      #9'push = Array.prototype.push,'
      #9'slice = Array.prototype.slice,'
      #9'trim = String.prototype.trim,'
      #9'indexOf = Array.prototype.indexOf,'
      #9
      #9'// [[Class]] -> type pairs'
      #9'class2type = {};'
      ''
      'jQuery.fn = jQuery.prototype = {'
      #9'init: function( selector, context ) {'
      #9#9'var match, elem, ret, doc;'
      ''
      #9#9'// Handle $(""), $(null), or $(undefined)'
      #9#9'if ( !selector ) {'
      #9#9#9'return this;'
      #9#9'}'
      ''
      #9#9'// Handle $(DOMElement)'
      #9#9'if ( selector.nodeType ) {'
      #9#9#9'this.context = this[0] = selector;'
      #9#9#9'this.length = 1;'
      #9#9#9'return this;'
      #9#9'}'
      #9#9
      #9#9'// The body element only exists once, optimize finding it'
      #9#9'if ( selector === "body" && !context && document.body ) {'
      #9#9#9'this.context = document;'
      #9#9#9'this[0] = document.body;'
      #9#9#9'this.selector = "body";'
      #9#9#9'this.length = 1;'
      #9#9#9'return this;'
      #9#9'}'
      ''
      #9#9'// Handle HTML strings'
      #9#9'if ( typeof selector === "string" ) {'
      #9#9#9'// Are we dealing with HTML string or an ID?'
      #9#9#9'match = quickExpr.exec( selector );'
      ''
      #9#9#9'// Verify a match, and that no context was specified for #id'
      #9#9#9'if ( match && (match[1] || !context) ) {'
      ''
      #9#9#9#9'// HANDLE: $(html) -> $(array)'
      #9#9#9#9'if ( match[1] ) {'
      
        #9#9#9#9#9'doc = (context ? context.ownerDocument || context : documen' +
        't);'
      ''
      #9#9#9#9#9'// If a single string is passed in and it'#39's a single tag'
      #9#9#9#9#9'// just do a createElement and skip the rest'
      #9#9#9#9#9'ret = rsingleTag.exec( selector );'
      ''
      #9#9#9#9#9'if ( ret ) {'
      #9#9#9#9#9#9'if ( jQuery.isPlainObject( context ) ) {'
      #9#9#9#9#9#9#9'selector = [ document.createElement( ret[1] ) ];'
      #9#9#9#9#9#9#9'jQuery.fn.attr.call( selector, context, true );'
      ''
      #9#9#9#9#9#9'} else {'
      #9#9#9#9#9#9#9'selector = [ doc.createElement( ret[1] ) ];'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'ret = jQuery.buildFragment( [ match[1] ], [ doc ] );'
      
        #9#9#9#9#9#9'selector = (ret.cacheable ? ret.fragment.cloneNode(true) :' +
        ' ret.fragment).childNodes;'
      #9#9#9#9#9'}'
      #9#9#9#9#9
      #9#9#9#9#9'return jQuery.merge( this, selector );'
      #9#9#9#9#9
      #9#9#9#9'// HANDLE: $("#id")'
      #9#9#9#9'} else {'
      #9#9#9#9#9'elem = document.getElementById( match[2] );'
      ''
      #9#9#9#9#9'// Check parentNode to catch when Blackberry 4.6 returns'
      #9#9#9#9#9'// nodes that are no longer in the document #6963'
      #9#9#9#9#9'if ( elem && elem.parentNode ) {'
      #9#9#9#9#9#9'// Handle the case where IE and Opera return items'
      #9#9#9#9#9#9'// by name instead of ID'
      #9#9#9#9#9#9'if ( elem.id !== match[2] ) {'
      #9#9#9#9#9#9#9'return rootjQuery.find( selector );'
      #9#9#9#9#9#9'}'
      ''
      
        #9#9#9#9#9#9'// Otherwise, we inject the element directly into the jQue' +
        'ry object'
      #9#9#9#9#9#9'this.length = 1;'
      #9#9#9#9#9#9'this[0] = elem;'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'this.context = document;'
      #9#9#9#9#9'this.selector = selector;'
      #9#9#9#9#9'return this;'
      #9#9#9#9'}'
      ''
      #9#9#9'// HANDLE: $("TAG")'
      #9#9#9'} else if ( !context && !rnonword.test( selector ) ) {'
      #9#9#9#9'this.selector = selector;'
      #9#9#9#9'this.context = document;'
      #9#9#9#9'selector = document.getElementsByTagName( selector );'
      #9#9#9#9'return jQuery.merge( this, selector );'
      ''
      #9#9#9'// HANDLE: $(expr, $(...))'
      #9#9#9'} else if ( !context || context.jquery ) {'
      #9#9#9#9'return (context || rootjQuery).find( selector );'
      ''
      #9#9#9'// HANDLE: $(expr, context)'
      #9#9#9'// (which is just equivalent to: $(context).find(expr)'
      #9#9#9'} else {'
      #9#9#9#9'return jQuery( context ).find( selector );'
      #9#9#9'}'
      ''
      #9#9'// HANDLE: $(function)'
      #9#9'// Shortcut for document ready'
      #9#9'} else if ( jQuery.isFunction( selector ) ) {'
      #9#9#9'return rootjQuery.ready( selector );'
      #9#9'}'
      ''
      #9#9'if (selector.selector !== undefined) {'
      #9#9#9'this.selector = selector.selector;'
      #9#9#9'this.context = selector.context;'
      #9#9'}'
      ''
      #9#9'return jQuery.makeArray( selector, this );'
      #9'},'
      ''
      #9'// Start with an empty selector'
      #9'selector: "",'
      ''
      #9'// The current version of jQuery being used'
      #9'jquery: "1.4.4",'
      ''
      #9'// The default length of a jQuery object is 0'
      #9'length: 0,'
      ''
      #9'// The number of elements contained in the matched element set'
      #9'size: function() {'
      #9#9'return this.length;'
      #9'},'
      ''
      #9'toArray: function() {'
      #9#9'return slice.call( this, 0 );'
      #9'},'
      ''
      #9'// Get the Nth element in the matched element set OR'
      #9'// Get the whole matched element set as a clean array'
      #9'get: function( num ) {'
      #9#9'return num == null ?'
      ''
      #9#9#9'// Return a '#39'clean'#39' array'
      #9#9#9'this.toArray() :'
      ''
      #9#9#9'// Return just the object'
      #9#9#9'( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );'
      #9'},'
      ''
      #9'// Take an array of elements and push it onto the stack'
      #9'// (returning the new matched element set)'
      #9'pushStack: function( elems, name, selector ) {'
      #9#9'// Build a new jQuery matched element set'
      #9#9'var ret = jQuery();'
      ''
      #9#9'if ( jQuery.isArray( elems ) ) {'
      #9#9#9'push.apply( ret, elems );'
      #9#9
      #9#9'} else {'
      #9#9#9'jQuery.merge( ret, elems );'
      #9#9'}'
      ''
      #9#9'// Add the old object onto the stack (as a reference)'
      #9#9'ret.prevObject = this;'
      ''
      #9#9'ret.context = this.context;'
      ''
      #9#9'if ( name === "find" ) {'
      
        #9#9#9'ret.selector = this.selector + (this.selector ? " " : "") + s' +
        'elector;'
      #9#9'} else if ( name ) {'
      
        #9#9#9'ret.selector = this.selector + "." + name + "(" + selector + ' +
        '")";'
      #9#9'}'
      ''
      #9#9'// Return the newly-formed element set'
      #9#9'return ret;'
      #9'},'
      ''
      #9'// Execute a callback for every element in the matched set.'
      
        #9'// (You can seed the arguments with an array of args, but this ' +
        'is'
      #9'// only used internally.)'
      #9'each: function( callback, args ) {'
      #9#9'return jQuery.each( this, callback, args );'
      #9'},'
      #9
      #9'ready: function( fn ) {'
      #9#9'// Attach the listeners'
      #9#9'jQuery.bindReady();'
      ''
      #9#9'// If the DOM is already ready'
      #9#9'if ( jQuery.isReady ) {'
      #9#9#9'// Execute the function immediately'
      #9#9#9'fn.call( document, jQuery );'
      ''
      #9#9'// Otherwise, remember the function for later'
      #9#9'} else if ( readyList ) {'
      #9#9#9'// Add the function to the wait list'
      #9#9#9'readyList.push( fn );'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      #9
      #9'eq: function( i ) {'
      #9#9'return i === -1 ?'
      #9#9#9'this.slice( i ) :'
      #9#9#9'this.slice( i, +i + 1 );'
      #9'},'
      ''
      #9'first: function() {'
      #9#9'return this.eq( 0 );'
      #9'},'
      ''
      #9'last: function() {'
      #9#9'return this.eq( -1 );'
      #9'},'
      ''
      #9'slice: function() {'
      #9#9'return this.pushStack( slice.apply( this, arguments ),'
      #9#9#9'"slice", slice.call(arguments).join(",") );'
      #9'},'
      ''
      #9'map: function( callback ) {'
      #9#9'return this.pushStack( jQuery.map(this, function( elem, i ) {'
      #9#9#9'return callback.call( elem, i, elem );'
      #9#9'}));'
      #9'},'
      #9
      #9'end: function() {'
      #9#9'return this.prevObject || jQuery(null);'
      #9'},'
      ''
      #9'// For internal use only.'
      #9'// Behaves like an Array'#39's method, not like a jQuery method.'
      #9'push: push,'
      #9'sort: [].sort,'
      #9'splice: [].splice'
      '};'
      ''
      
        '// Give the init function the jQuery prototype for later instant' +
        'iation'
      'jQuery.fn.init.prototype = jQuery.fn;'
      ''
      'jQuery.extend = jQuery.fn.extend = function() {'
      #9' var options, name, src, copy, copyIsArray, clone,'
      #9#9'target = arguments[0] || {},'
      #9#9'i = 1,'
      #9#9'length = arguments.length,'
      #9#9'deep = false;'
      ''
      #9'// Handle a deep copy situation'
      #9'if ( typeof target === "boolean" ) {'
      #9#9'deep = target;'
      #9#9'target = arguments[1] || {};'
      #9#9'// skip the boolean and the target'
      #9#9'i = 2;'
      #9'}'
      ''
      
        #9'// Handle case when target is a string or something (possible i' +
        'n deep copy)'
      
        #9'if ( typeof target !== "object" && !jQuery.isFunction(target) )' +
        ' {'
      #9#9'target = {};'
      #9'}'
      ''
      #9'// extend jQuery itself if only one argument is passed'
      #9'if ( length === i ) {'
      #9#9'target = this;'
      #9#9'--i;'
      #9'}'
      ''
      #9'for ( ; i < length; i++ ) {'
      #9#9'// Only deal with non-null/undefined values'
      #9#9'if ( (options = arguments[ i ]) != null ) {'
      #9#9#9'// Extend the base object'
      #9#9#9'for ( name in options ) {'
      #9#9#9#9'src = target[ name ];'
      #9#9#9#9'copy = options[ name ];'
      ''
      #9#9#9#9'// Prevent never-ending loop'
      #9#9#9#9'if ( target === copy ) {'
      #9#9#9#9#9'continue;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Recurse if we'#39're merging plain objects or arrays'
      
        #9#9#9#9'if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIs' +
        'Array = jQuery.isArray(copy)) ) ) {'
      #9#9#9#9#9'if ( copyIsArray ) {'
      #9#9#9#9#9#9'copyIsArray = false;'
      #9#9#9#9#9#9'clone = src && jQuery.isArray(src) ? src : [];'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'clone = src && jQuery.isPlainObject(src) ? src : {};'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'// Never move original objects, clone them'
      #9#9#9#9#9'target[ name ] = jQuery.extend( deep, clone, copy );'
      ''
      #9#9#9#9'// Don'#39't bring in undefined values'
      #9#9#9#9'} else if ( copy !== undefined ) {'
      #9#9#9#9#9'target[ name ] = copy;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'// Return the modified object'
      #9'return target;'
      '};'
      ''
      'jQuery.extend({'
      #9'noConflict: function( deep ) {'
      #9#9'window.$ = _$;'
      ''
      #9#9'if ( deep ) {'
      #9#9#9'window.jQuery = _jQuery;'
      #9#9'}'
      ''
      #9#9'return jQuery;'
      #9'},'
      #9
      #9'// Is the DOM ready to be used? Set to true once it occurs.'
      #9'isReady: false,'
      ''
      #9'// A counter to track how many items to wait for before'
      #9'// the ready event fires. See #6781'
      #9'readyWait: 1,'
      #9
      #9'// Handle when the DOM is ready'
      #9'ready: function( wait ) {'
      #9#9'// A third-party is pushing the ready event forwards'
      #9#9'if ( wait === true ) {'
      #9#9#9'jQuery.readyWait--;'
      #9#9'}'
      ''
      #9#9'// Make sure that the DOM is not already loaded'
      
        #9#9'if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) )' +
        ' {'
      
        #9#9#9'// Make sure body exists, at least, in case IE gets a little ' +
        'overzealous (ticket #5443).'
      #9#9#9'if ( !document.body ) {'
      #9#9#9#9'return setTimeout( jQuery.ready, 1 );'
      #9#9#9'}'
      ''
      #9#9#9'// Remember that the DOM is ready'
      #9#9#9'jQuery.isReady = true;'
      ''
      
        #9#9#9'// If a normal DOM Ready event fired, decrement, and wait if ' +
        'need be'
      #9#9#9'if ( wait !== true && --jQuery.readyWait > 0 ) {'
      #9#9#9#9'return;'
      #9#9#9'}'
      ''
      #9#9#9'// If there are functions bound, to execute'
      #9#9#9'if ( readyList ) {'
      #9#9#9#9'// Execute all of them'
      #9#9#9#9'var fn,'
      #9#9#9#9#9'i = 0,'
      #9#9#9#9#9'ready = readyList;'
      ''
      #9#9#9#9'// Reset the list of functions'
      #9#9#9#9'readyList = null;'
      ''
      #9#9#9#9'while ( (fn = ready[ i++ ]) ) {'
      #9#9#9#9#9'fn.call( document, jQuery );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Trigger any bound ready events'
      #9#9#9#9'if ( jQuery.fn.trigger ) {'
      #9#9#9#9#9'jQuery( document ).trigger( "ready" ).unbind( "ready" );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      #9
      #9'bindReady: function() {'
      #9#9'if ( readyBound ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'readyBound = true;'
      ''
      #9#9'// Catch cases where $(document).ready() is called after the'
      #9#9'// browser event has already occurred.'
      #9#9'if ( document.readyState === "complete" ) {'
      
        #9#9#9'// Handle it asynchronously to allow scripts the opportunity ' +
        'to delay ready'
      #9#9#9'return setTimeout( jQuery.ready, 1 );'
      #9#9'}'
      ''
      
        #9#9'// Mozilla, Opera and webkit nightlies currently support this ' +
        'event'
      #9#9'if ( document.addEventListener ) {'
      #9#9#9'// Use the handy event callback'
      
        #9#9#9'document.addEventListener( "DOMContentLoaded", DOMContentLoad' +
        'ed, false );'
      #9#9#9
      #9#9#9'// A fallback to window.onload, that will always work'
      #9#9#9'window.addEventListener( "load", jQuery.ready, false );'
      ''
      #9#9'// If IE event model is used'
      #9#9'} else if ( document.attachEvent ) {'
      #9#9#9'// ensure firing before onload,'
      #9#9#9'// maybe late but safe also for iframes'
      #9#9#9'document.attachEvent("onreadystatechange", DOMContentLoaded);'
      #9#9#9
      #9#9#9'// A fallback to window.onload, that will always work'
      #9#9#9'window.attachEvent( "onload", jQuery.ready );'
      ''
      #9#9#9'// If IE and not a frame'
      #9#9#9'// continually check to see if the document is ready'
      #9#9#9'var toplevel = false;'
      ''
      #9#9#9'try {'
      #9#9#9#9'toplevel = window.frameElement == null;'
      #9#9#9'} catch(e) {}'
      ''
      #9#9#9'if ( document.documentElement.doScroll && toplevel ) {'
      #9#9#9#9'doScrollCheck();'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      ''
      #9'// See test/unit/core.js for details concerning isFunction.'
      #9'// Since version 1.3, DOM methods and functions like alert'
      #9'// aren'#39't supported. They return false on IE (#2968).'
      #9'isFunction: function( obj ) {'
      #9#9'return jQuery.type(obj) === "function";'
      #9'},'
      ''
      #9'isArray: Array.isArray || function( obj ) {'
      #9#9'return jQuery.type(obj) === "array";'
      #9'},'
      ''
      #9'// A crude way of determining if an object is a window'
      #9'isWindow: function( obj ) {'
      #9#9'return obj && typeof obj === "object" && "setInterval" in obj;'
      #9'},'
      ''
      #9'isNaN: function( obj ) {'
      #9#9'return obj == null || !rdigit.test( obj ) || isNaN( obj );'
      #9'},'
      ''
      #9'type: function( obj ) {'
      #9#9'return obj == null ?'
      #9#9#9'String( obj ) :'
      #9#9#9'class2type[ toString.call(obj) ] || "object";'
      #9'},'
      ''
      #9'isPlainObject: function( obj ) {'
      #9#9'// Must be an Object.'
      
        #9#9'// Because of IE, we also have to check the presence of the co' +
        'nstructor property.'
      
        #9#9'// Make sure that DOM nodes and window objects don'#39't pass thro' +
        'ugh, as well'
      
        #9#9'if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || ' +
        'jQuery.isWindow( obj ) ) {'
      #9#9#9'return false;'
      #9#9'}'
      #9#9
      #9#9'// Not own constructor property must be Object'
      #9#9'if ( obj.constructor &&'
      #9#9#9'!hasOwn.call(obj, "constructor") &&'
      #9#9#9'!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {'
      #9#9#9'return false;'
      #9#9'}'
      #9#9
      #9#9'// Own properties are enumerated firstly, so to speed up,'
      #9#9'// if last one is own, then all properties are own.'
      #9
      #9#9'var key;'
      #9#9'for ( key in obj ) {}'
      #9#9
      #9#9'return key === undefined || hasOwn.call( obj, key );'
      #9'},'
      ''
      #9'isEmptyObject: function( obj ) {'
      #9#9'for ( var name in obj ) {'
      #9#9#9'return false;'
      #9#9'}'
      #9#9'return true;'
      #9'},'
      #9
      #9'error: function( msg ) {'
      #9#9'throw msg;'
      #9'},'
      #9
      #9'parseJSON: function( data ) {'
      #9#9'if ( typeof data !== "string" || !data ) {'
      #9#9#9'return null;'
      #9#9'}'
      ''
      
        #9#9'// Make sure leading/trailing whitespace is removed (IE can'#39't ' +
        'handle it)'
      #9#9'data = jQuery.trim( data );'
      #9#9
      #9#9'// Make sure the incoming data is actual JSON'
      #9#9'// Logic borrowed from http://json.org/json2.js'
      #9#9'if ( rvalidchars.test(data.replace(rvalidescape, "@")'
      #9#9#9'.replace(rvalidtokens, "]")'
      #9#9#9'.replace(rvalidbraces, "")) ) {'
      ''
      #9#9#9'// Try to use the native JSON parser first'
      #9#9#9'return window.JSON && window.JSON.parse ?'
      #9#9#9#9'window.JSON.parse( data ) :'
      #9#9#9#9'(new Function("return " + data))();'
      ''
      #9#9'} else {'
      #9#9#9'jQuery.error( "Invalid JSON: " + data );'
      #9#9'}'
      #9'},'
      ''
      #9'noop: function() {},'
      ''
      #9'// Evalulates a script in a global context'
      #9'globalEval: function( data ) {'
      #9#9'if ( data && rnotwhite.test(data) ) {'
      #9#9#9'// Inspired by code by Andrea Giammarchi'
      
        #9#9#9'// http://webreflection.blogspot.com/2007/08/global-scope-eva' +
        'luation-and-dom.html'
      
        #9#9#9'var head = document.getElementsByTagName("head")[0] || docume' +
        'nt.documentElement,'
      #9#9#9#9'script = document.createElement("script");'
      ''
      #9#9#9'script.type = "text/javascript";'
      ''
      #9#9#9'if ( jQuery.support.scriptEval ) {'
      #9#9#9#9'script.appendChild( document.createTextNode( data ) );'
      #9#9#9'} else {'
      #9#9#9#9'script.text = data;'
      #9#9#9'}'
      ''
      
        #9#9#9'// Use insertBefore instead of appendChild to circumvent an I' +
        'E6 bug.'
      #9#9#9'// This arises when a base node is used (#2709).'
      #9#9#9'head.insertBefore( script, head.firstChild );'
      #9#9#9'head.removeChild( script );'
      #9#9'}'
      #9'},'
      ''
      #9'nodeName: function( elem, name ) {'
      
        #9#9'return elem.nodeName && elem.nodeName.toUpperCase() === name.t' +
        'oUpperCase();'
      #9'},'
      ''
      #9'// args is for internal usage only'
      #9'each: function( object, callback, args ) {'
      #9#9'var name, i = 0,'
      #9#9#9'length = object.length,'
      #9#9#9'isObj = length === undefined || jQuery.isFunction(object);'
      ''
      #9#9'if ( args ) {'
      #9#9#9'if ( isObj ) {'
      #9#9#9#9'for ( name in object ) {'
      #9#9#9#9#9'if ( callback.apply( object[ name ], args ) === false ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'} else {'
      #9#9#9#9'for ( ; i < length; ) {'
      #9#9#9#9#9'if ( callback.apply( object[ i++ ], args ) === false ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9'// A special, fast, case for the most common use of each'
      #9#9'} else {'
      #9#9#9'if ( isObj ) {'
      #9#9#9#9'for ( name in object ) {'
      
        #9#9#9#9#9'if ( callback.call( object[ name ], name, object[ name ] ) ' +
        '=== false ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'} else {'
      #9#9#9#9'for ( var value = object[0];'
      
        #9#9#9#9#9'i < length && callback.call( value, i, value ) !== false; v' +
        'alue = object[++i] ) {}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return object;'
      #9'},'
      ''
      #9'// Use native String.trim function wherever possible'
      #9'trim: trim ?'
      #9#9'function( text ) {'
      #9#9#9'return text == null ?'
      #9#9#9#9'"" :'
      #9#9#9#9'trim.call( text );'
      #9#9'} :'
      ''
      #9#9'// Otherwise use our own trimming functionality'
      #9#9'function( text ) {'
      #9#9#9'return text == null ?'
      #9#9#9#9'"" :'
      
        #9#9#9#9'text.toString().replace( trimLeft, "" ).replace( trimRight, ' +
        '"" );'
      #9#9'},'
      ''
      #9'// results is for internal usage only'
      #9'makeArray: function( array, results ) {'
      #9#9'var ret = results || [];'
      ''
      #9#9'if ( array != null ) {'
      #9#9#9'// The window, strings (and functions) also have '#39'length'#39
      #9#9#9'// The extra typeof function check is to prevent crashes'
      #9#9#9'// in Safari 2 (See: #3039)'
      
        #9#9#9'// Tweaked logic slightly to handle Blackberry 4.7 RegExp iss' +
        'ues #6930'
      #9#9#9'var type = jQuery.type(array);'
      ''
      
        #9#9#9'if ( array.length == null || type === "string" || type === "f' +
        'unction" || type === "regexp" || jQuery.isWindow( array ) ) {'
      #9#9#9#9'push.call( ret, array );'
      #9#9#9'} else {'
      #9#9#9#9'jQuery.merge( ret, array );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'},'
      ''
      #9'inArray: function( elem, array ) {'
      #9#9'if ( array.indexOf ) {'
      #9#9#9'return array.indexOf( elem );'
      #9#9'}'
      ''
      #9#9'for ( var i = 0, length = array.length; i < length; i++ ) {'
      #9#9#9'if ( array[ i ] === elem ) {'
      #9#9#9#9'return i;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return -1;'
      #9'},'
      ''
      #9'merge: function( first, second ) {'
      #9#9'var i = first.length,'
      #9#9#9'j = 0;'
      ''
      #9#9'if ( typeof second.length === "number" ) {'
      #9#9#9'for ( var l = second.length; j < l; j++ ) {'
      #9#9#9#9'first[ i++ ] = second[ j ];'
      #9#9#9'}'
      #9#9
      #9#9'} else {'
      #9#9#9'while ( second[j] !== undefined ) {'
      #9#9#9#9'first[ i++ ] = second[ j++ ];'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'first.length = i;'
      ''
      #9#9'return first;'
      #9'},'
      ''
      #9'grep: function( elems, callback, inv ) {'
      #9#9'var ret = [], retVal;'
      #9#9'inv = !!inv;'
      ''
      #9#9'// Go through the array, only saving the items'
      #9#9'// that pass the validator function'
      #9#9'for ( var i = 0, length = elems.length; i < length; i++ ) {'
      #9#9#9'retVal = !!callback( elems[ i ], i );'
      #9#9#9'if ( inv !== retVal ) {'
      #9#9#9#9'ret.push( elems[ i ] );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'},'
      ''
      #9'// arg is for internal usage only'
      #9'map: function( elems, callback, arg ) {'
      #9#9'var ret = [], value;'
      ''
      
        #9#9'// Go through the array, translating each of the items to thei' +
        'r'
      #9#9'// new value (or values).'
      #9#9'for ( var i = 0, length = elems.length; i < length; i++ ) {'
      #9#9#9'value = callback( elems[ i ], i, arg );'
      ''
      #9#9#9'if ( value != null ) {'
      #9#9#9#9'ret[ ret.length ] = value;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret.concat.apply( [], ret );'
      #9'},'
      ''
      #9'// A global GUID counter for objects'
      #9'guid: 1,'
      ''
      #9'proxy: function( fn, proxy, thisObject ) {'
      #9#9'if ( arguments.length === 2 ) {'
      #9#9#9'if ( typeof proxy === "string" ) {'
      #9#9#9#9'thisObject = fn;'
      #9#9#9#9'fn = thisObject[ proxy ];'
      #9#9#9#9'proxy = undefined;'
      ''
      #9#9#9'} else if ( proxy && !jQuery.isFunction( proxy ) ) {'
      #9#9#9#9'thisObject = proxy;'
      #9#9#9#9'proxy = undefined;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'if ( !proxy && fn ) {'
      #9#9#9'proxy = function() {'
      #9#9#9#9'return fn.apply( thisObject || this, arguments );'
      #9#9#9'};'
      #9#9'}'
      ''
      
        #9#9'// Set the guid of unique handler to the same of original hand' +
        'ler, so it can be removed'
      #9#9'if ( fn ) {'
      
        #9#9#9'proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++' +
        ';'
      #9#9'}'
      ''
      #9#9'// So proxy can be declared as an argument'
      #9#9'return proxy;'
      #9'},'
      ''
      #9'// Mutifunctional method to get and set values to a collection'
      #9'// The value/s can be optionally by executed if its a function'
      #9'access: function( elems, key, value, exec, fn, pass ) {'
      #9#9'var length = elems.length;'
      #9
      #9#9'// Setting many attributes'
      #9#9'if ( typeof key === "object" ) {'
      #9#9#9'for ( var k in key ) {'
      #9#9#9#9'jQuery.access( elems, k, key[k], exec, fn, value );'
      #9#9#9'}'
      #9#9#9'return elems;'
      #9#9'}'
      #9
      #9#9'// Setting one attribute'
      #9#9'if ( value !== undefined ) {'
      #9#9#9'// Optionally, function values get executed if exec is true'
      #9#9#9'exec = !pass && exec && jQuery.isFunction(value);'
      #9#9
      #9#9#9'for ( var i = 0; i < length; i++ ) {'
      
        #9#9#9#9'fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems' +
        '[i], key ) ) : value, pass );'
      #9#9#9'}'
      #9#9
      #9#9#9'return elems;'
      #9#9'}'
      #9
      #9#9'// Getting an attribute'
      #9#9'return length ? fn( elems[0], key ) : undefined;'
      #9'},'
      ''
      #9'now: function() {'
      #9#9'return (new Date()).getTime();'
      #9'},'
      ''
      #9'// Use of jQuery.browser is frowned upon.'
      
        #9'// More details: http://docs.jquery.com/Utilities/jQuery.browse' +
        'r'
      #9'uaMatch: function( ua ) {'
      #9#9'ua = ua.toLowerCase();'
      ''
      #9#9'var match = rwebkit.exec( ua ) ||'
      #9#9#9'ropera.exec( ua ) ||'
      #9#9#9'rmsie.exec( ua ) ||'
      #9#9#9'ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||'
      #9#9#9'[];'
      ''
      #9#9'return { browser: match[1] || "", version: match[2] || "0" };'
      #9'},'
      ''
      #9'browser: {}'
      '});'
      ''
      '// Populate the class2type map'
      
        'jQuery.each("Boolean Number String Function Array Date RegExp Ob' +
        'ject".split(" "), function(i, name) {'
      #9'class2type[ "[object " + name + "]" ] = name.toLowerCase();'
      '});'
      ''
      'browserMatch = jQuery.uaMatch( userAgent );'
      'if ( browserMatch.browser ) {'
      #9'jQuery.browser[ browserMatch.browser ] = true;'
      #9'jQuery.browser.version = browserMatch.version;'
      '}'
      ''
      '// Deprecated, use jQuery.browser.webkit instead'
      'if ( jQuery.browser.webkit ) {'
      #9'jQuery.browser.safari = true;'
      '}'
      ''
      'if ( indexOf ) {'
      #9'jQuery.inArray = function( elem, array ) {'
      #9#9'return indexOf.call( array, elem );'
      #9'};'
      '}'
      ''
      '// Verify that \s matches non-breaking spaces'
      '// (IE fails on this test)'
      'if ( !rwhite.test( "\xA0" ) ) {'
      #9'trimLeft = /^[\s\xA0]+/;'
      #9'trimRight = /[\s\xA0]+$/;'
      '}'
      ''
      '// All jQuery objects should point back to these'
      'rootjQuery = jQuery(document);'
      ''
      '// Cleanup functions for the document ready method'
      'if ( document.addEventListener ) {'
      #9'DOMContentLoaded = function() {'
      
        #9#9'document.removeEventListener( "DOMContentLoaded", DOMContentLo' +
        'aded, false );'
      #9#9'jQuery.ready();'
      #9'};'
      ''
      '} else if ( document.attachEvent ) {'
      #9'DOMContentLoaded = function() {'
      
        #9#9'// Make sure body exists, at least, in case IE gets a little o' +
        'verzealous (ticket #5443).'
      #9#9'if ( document.readyState === "complete" ) {'
      
        #9#9#9'document.detachEvent( "onreadystatechange", DOMContentLoaded ' +
        ');'
      #9#9#9'jQuery.ready();'
      #9#9'}'
      #9'};'
      '}'
      ''
      '// The DOM ready check for Internet Explorer'
      'function doScrollCheck() {'
      #9'if ( jQuery.isReady ) {'
      #9#9'return;'
      #9'}'
      ''
      #9'try {'
      #9#9'// If IE is used, use the trick by Diego Perini'
      #9#9'// http://javascript.nwbox.com/IEContentLoaded/'
      #9#9'document.documentElement.doScroll("left");'
      #9'} catch(e) {'
      #9#9'setTimeout( doScrollCheck, 1 );'
      #9#9'return;'
      #9'}'
      ''
      #9'// and execute any waiting functions'
      #9'jQuery.ready();'
      '}'
      ''
      '// Expose jQuery to the global object'
      'return (window.jQuery = window.$ = jQuery);'
      ''
      '})();'
      ''
      ''
      '(function() {'
      ''
      #9'jQuery.support = {};'
      ''
      #9'var root = document.documentElement,'
      #9#9'script = document.createElement("script"),'
      #9#9'div = document.createElement("div"),'
      #9#9'id = "script" + jQuery.now();'
      ''
      #9'div.style.display = "none";'
      
        #9'div.innerHTML = "   <link/><table></table><a href='#39'/a'#39' style='#39'c' +
        'olor:red;float:left;opacity:.55;'#39'>a</a><input type='#39'checkbox'#39'/>"' +
        ';'
      ''
      #9'var all = div.getElementsByTagName("*"),'
      #9#9'a = div.getElementsByTagName("a")[0],'
      #9#9'select = document.createElement("select"),'
      #9#9'opt = select.appendChild( document.createElement("option") );'
      ''
      #9'// Can'#39't get basic test support'
      #9'if ( !all || !all.length || !a ) {'
      #9#9'return;'
      #9'}'
      ''
      #9'jQuery.support = {'
      #9#9'// IE strips leading whitespace when .innerHTML is used'
      #9#9'leadingWhitespace: div.firstChild.nodeType === 3,'
      ''
      #9#9'// Make sure that tbody elements aren'#39't automatically inserted'
      #9#9'// IE will insert them into empty tables'
      #9#9'tbody: !div.getElementsByTagName("tbody").length,'
      ''
      
        #9#9'// Make sure that link elements get serialized correctly by in' +
        'nerHTML'
      #9#9'// This requires a wrapper element in IE'
      #9#9'htmlSerialize: !!div.getElementsByTagName("link").length,'
      ''
      #9#9'// Get the style information from getAttribute'
      #9#9'// (IE uses .cssText insted)'
      #9#9'style: /red/.test( a.getAttribute("style") ),'
      ''
      #9#9'// Make sure that URLs aren'#39't manipulated'
      #9#9'// (IE normalizes it by default)'
      #9#9'hrefNormalized: a.getAttribute("href") === "/a",'
      ''
      #9#9'// Make sure that element opacity exists'
      #9#9'// (IE uses filter instead)'
      #9#9'// Use a regex to work around a WebKit issue. See #5145'
      #9#9'opacity: /^0.55$/.test( a.style.opacity ),'
      ''
      #9#9'// Verify style float existence'
      #9#9'// (IE uses styleFloat instead of cssFloat)'
      #9#9'cssFloat: !!a.style.cssFloat,'
      ''
      #9#9'// Make sure that if no value is specified for a checkbox'
      #9#9'// that it defaults to "on".'
      #9#9'// (WebKit defaults to "" instead)'
      #9#9'checkOn: div.getElementsByTagName("input")[0].value === "on",'
      ''
      
        #9#9'// Make sure that a selected-by-default option has a working s' +
        'elected property.'
      
        #9#9'// (WebKit defaults to false instead of true, IE too, if it'#39's ' +
        'in an optgroup)'
      #9#9'optSelected: opt.selected,'
      ''
      #9#9'// Will be defined later'
      #9#9'deleteExpando: true,'
      #9#9'optDisabled: false,'
      #9#9'checkClone: false,'
      #9#9'scriptEval: false,'
      #9#9'noCloneEvent: true,'
      #9#9'boxModel: null,'
      #9#9'inlineBlockNeedsLayout: false,'
      #9#9'shrinkWrapBlocks: false,'
      #9#9'reliableHiddenOffsets: true'
      #9'};'
      ''
      
        #9'// Make sure that the options inside disabled selects aren'#39't ma' +
        'rked as disabled'
      #9'// (WebKit marks them as diabled)'
      #9'select.disabled = true;'
      #9'jQuery.support.optDisabled = !opt.disabled;'
      ''
      #9'script.type = "text/javascript";'
      #9'try {'
      
        #9#9'script.appendChild( document.createTextNode( "window." + id + ' +
        '"=1;" ) );'
      #9'} catch(e) {}'
      ''
      #9'root.insertBefore( script, root.firstChild );'
      ''
      
        #9'// Make sure that the execution of code works by injecting a sc' +
        'ript'
      #9'// tag with appendChild/createTextNode'
      #9'// (IE doesn'#39't support this, fails, and uses .text instead)'
      #9'if ( window[ id ] ) {'
      #9#9'jQuery.support.scriptEval = true;'
      #9#9'delete window[ id ];'
      #9'}'
      ''
      
        #9'// Test to see if it'#39's possible to delete an expando from an el' +
        'ement'
      #9'// Fails in Internet Explorer'
      #9'try {'
      #9#9'delete script.test;'
      ''
      #9'} catch(e) {'
      #9#9'jQuery.support.deleteExpando = false;'
      #9'}'
      ''
      #9'root.removeChild( script );'
      ''
      #9'if ( div.attachEvent && div.fireEvent ) {'
      #9#9'div.attachEvent("onclick", function click() {'
      #9#9#9'// Cloning a node shouldn'#39't copy over any'
      #9#9#9'// bound event handlers (IE does this)'
      #9#9#9'jQuery.support.noCloneEvent = false;'
      #9#9#9'div.detachEvent("onclick", click);'
      #9#9'});'
      #9#9'div.cloneNode(true).fireEvent("onclick");'
      #9'}'
      ''
      #9'div = document.createElement("div");'
      
        #9'div.innerHTML = "<input type='#39'radio'#39' name='#39'radiotest'#39' checked='#39 +
        'checked'#39'/>";'
      ''
      #9'var fragment = document.createDocumentFragment();'
      #9'fragment.appendChild( div.firstChild );'
      ''
      #9'// WebKit doesn'#39't clone checked state correctly in fragments'
      
        #9'jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(' +
        'true).lastChild.checked;'
      ''
      #9'// Figure out if the W3C box model works as expected'
      #9'// document.body must exist before we can do this'
      #9'jQuery(function() {'
      #9#9'var div = document.createElement("div");'
      #9#9'div.style.width = div.style.paddingLeft = "1px";'
      ''
      #9#9'document.body.appendChild( div );'
      
        #9#9'jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth ==' +
        '= 2;'
      ''
      #9#9'if ( "zoom" in div.style ) {'
      
        #9#9#9'// Check if natively block-level elements act like inline-blo' +
        'ck'
      #9#9#9'// elements when setting their display to '#39'inline'#39' and giving'
      #9#9#9'// them layout'
      #9#9#9'// (IE < 8 does this)'
      #9#9#9'div.style.display = "inline";'
      #9#9#9'div.style.zoom = 1;'
      
        #9#9#9'jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2' +
        ';'
      ''
      #9#9#9'// Check if elements with layout shrink-wrap their children'
      #9#9#9'// (IE 6 does this)'
      #9#9#9'div.style.display = "";'
      #9#9#9'div.innerHTML = "<div style='#39'width:4px;'#39'></div>";'
      #9#9#9'jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;'
      #9#9'}'
      ''
      
        #9#9'div.innerHTML = "<table><tr><td style='#39'padding:0;display:none'#39 +
        '></td><td>t</td></tr></table>";'
      #9#9'var tds = div.getElementsByTagName("td");'
      ''
      
        #9#9'// Check if table cells still have offsetWidth/Height when the' +
        'y are set'
      
        #9#9'// to display:none and there are still other visible table cel' +
        'ls in a'
      
        #9#9'// table row; if so, offsetWidth/Height are not reliable for u' +
        'se when'
      #9#9'// determining if an element has been hidden directly using'
      
        #9#9'// display:none (it is still safe to use offsets if a parent e' +
        'lement is'
      
        #9#9'// hidden; don safety goggles and see bug #4512 for more infor' +
        'mation).'
      #9#9'// (only IE 8 fails this test)'
      
        #9#9'jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight ===' +
        ' 0;'
      ''
      #9#9'tds[0].style.display = "";'
      #9#9'tds[1].style.display = "none";'
      ''
      #9#9'// Check if empty table cells still have offsetWidth/Height'
      #9#9'// (IE < 8 fail this test)'
      
        #9#9'jQuery.support.reliableHiddenOffsets = jQuery.support.reliable' +
        'HiddenOffsets && tds[0].offsetHeight === 0;'
      #9#9'div.innerHTML = "";'
      ''
      #9#9'document.body.removeChild( div ).style.display = "none";'
      #9#9'div = tds = null;'
      #9'});'
      ''
      #9'// Technique from Juriy Zaytsev'
      
        #9'// http://thinkweb2.com/projects/prototype/detecting-event-supp' +
        'ort-without-browser-sniffing/'
      #9'var eventSupported = function( eventName ) {'
      #9#9'var el = document.createElement("div");'
      #9#9'eventName = "on" + eventName;'
      ''
      #9#9'var isSupported = (eventName in el);'
      #9#9'if ( !isSupported ) {'
      #9#9#9'el.setAttribute(eventName, "return;");'
      #9#9#9'isSupported = typeof el[eventName] === "function";'
      #9#9'}'
      #9#9'el = null;'
      ''
      #9#9'return isSupported;'
      #9'};'
      ''
      #9'jQuery.support.submitBubbles = eventSupported("submit");'
      #9'jQuery.support.changeBubbles = eventSupported("change");'
      ''
      #9'// release memory in IE'
      #9'root = script = div = all = a = null;'
      '})();'
      ''
      ''
      ''
      'var windowData = {},'
      #9'rbrace = /^(?:\{.*\}|\[.*\])$/;'
      ''
      'jQuery.extend({'
      #9'cache: {},'
      ''
      #9'// Please use with caution'
      #9'uuid: 0,'
      ''
      #9'// Unique for each copy of jQuery on the page'#9
      #9'expando: "jQuery" + jQuery.now(),'
      ''
      #9'// The following elements throw uncatchable exceptions if you'
      #9'// attempt to add expando properties to them.'
      #9'noData: {'
      #9#9'"embed": true,'
      #9#9'// Ban all objects except for Flash (which handle expandos)'
      #9#9'"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",'
      #9#9'"applet": true'
      #9'},'
      ''
      #9'data: function( elem, name, data ) {'
      #9#9'if ( !jQuery.acceptData( elem ) ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'elem = elem == window ?'
      #9#9#9'windowData :'
      #9#9#9'elem;'
      ''
      #9#9'var isNode = elem.nodeType,'
      #9#9#9'id = isNode ? elem[ jQuery.expando ] : null,'
      #9#9#9'cache = jQuery.cache, thisCache;'
      ''
      
        #9#9'if ( isNode && !id && typeof name === "string" && data === und' +
        'efined ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'// Get the data from the object directly'
      #9#9'if ( !isNode ) {'
      #9#9#9'cache = elem;'
      ''
      #9#9'// Compute a unique ID for the element'
      #9#9'} else if ( !id ) {'
      #9#9#9'elem[ jQuery.expando ] = id = ++jQuery.uuid;'
      #9#9'}'
      ''
      #9#9'// Avoid generating a new cache unless none exists and we'
      #9#9'// want to manipulate it.'
      #9#9'if ( typeof name === "object" ) {'
      #9#9#9'if ( isNode ) {'
      #9#9#9#9'cache[ id ] = jQuery.extend(cache[ id ], name);'
      ''
      #9#9#9'} else {'
      #9#9#9#9'jQuery.extend( cache, name );'
      #9#9#9'}'
      ''
      #9#9'} else if ( isNode && !cache[ id ] ) {'
      #9#9#9'cache[ id ] = {};'
      #9#9'}'
      ''
      #9#9'thisCache = isNode ? cache[ id ] : cache;'
      ''
      #9#9'// Prevent overriding the named cache with undefined values'
      #9#9'if ( data !== undefined ) {'
      #9#9#9'thisCache[ name ] = data;'
      #9#9'}'
      ''
      
        #9#9'return typeof name === "string" ? thisCache[ name ] : thisCach' +
        'e;'
      #9'},'
      ''
      #9'removeData: function( elem, name ) {'
      #9#9'if ( !jQuery.acceptData( elem ) ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'elem = elem == window ?'
      #9#9#9'windowData :'
      #9#9#9'elem;'
      ''
      #9#9'var isNode = elem.nodeType,'
      #9#9#9'id = isNode ? elem[ jQuery.expando ] : elem,'
      #9#9#9'cache = jQuery.cache,'
      #9#9#9'thisCache = isNode ? cache[ id ] : id;'
      ''
      
        #9#9'// If we want to remove a specific section of the element'#39's da' +
        'ta'
      #9#9'if ( name ) {'
      #9#9#9'if ( thisCache ) {'
      #9#9#9#9'// Remove the section of cache data'
      #9#9#9#9'delete thisCache[ name ];'
      ''
      #9#9#9#9'// If we'#39've removed all the data, remove the element'#39's cache'
      #9#9#9#9'if ( isNode && jQuery.isEmptyObject(thisCache) ) {'
      #9#9#9#9#9'jQuery.removeData( elem );'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9'// Otherwise, we want to remove all of the element'#39's data'
      #9#9'} else {'
      #9#9#9'if ( isNode && jQuery.support.deleteExpando ) {'
      #9#9#9#9'delete elem[ jQuery.expando ];'
      ''
      #9#9#9'} else if ( elem.removeAttribute ) {'
      #9#9#9#9'elem.removeAttribute( jQuery.expando );'
      ''
      #9#9#9'// Completely remove the data cache'
      #9#9#9'} else if ( isNode ) {'
      #9#9#9#9'delete cache[ id ];'
      ''
      #9#9#9'// Remove all fields from the object'
      #9#9#9'} else {'
      #9#9#9#9'for ( var n in elem ) {'
      #9#9#9#9#9'delete elem[ n ];'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      ''
      
        #9'// A method for determining if a DOM node can handle the data e' +
        'xpando'
      #9'acceptData: function( elem ) {'
      #9#9'if ( elem.nodeName ) {'
      #9#9#9'var match = jQuery.noData[ elem.nodeName.toLowerCase() ];'
      ''
      #9#9#9'if ( match ) {'
      
        #9#9#9#9'return !(match === true || elem.getAttribute("classid") !== ' +
        'match);'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return true;'
      #9'}'
      '});'
      ''
      'jQuery.fn.extend({'
      #9'data: function( key, value ) {'
      #9#9'var data = null;'
      ''
      #9#9'if ( typeof key === "undefined" ) {'
      #9#9#9'if ( this.length ) {'
      #9#9#9#9'var attr = this[0].attributes, name;'
      #9#9#9#9'data = jQuery.data( this[0] );'
      ''
      #9#9#9#9'for ( var i = 0, l = attr.length; i < l; i++ ) {'
      #9#9#9#9#9'name = attr[i].name;'
      ''
      #9#9#9#9#9'if ( name.indexOf( "data-" ) === 0 ) {'
      #9#9#9#9#9#9'name = name.substr( 5 );'
      #9#9#9#9#9#9'dataAttr( this[0], name, data[ name ] );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'return data;'
      ''
      #9#9'} else if ( typeof key === "object" ) {'
      #9#9#9'return this.each(function() {'
      #9#9#9#9'jQuery.data( this, key );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'var parts = key.split(".");'
      #9#9'parts[1] = parts[1] ? "." + parts[1] : "";'
      ''
      #9#9'if ( value === undefined ) {'
      
        #9#9#9'data = this.triggerHandler("getData" + parts[1] + "!", [parts' +
        '[0]]);'
      ''
      #9#9#9'// Try to fetch any internally stored data first'
      #9#9#9'if ( data === undefined && this.length ) {'
      #9#9#9#9'data = jQuery.data( this[0], key );'
      #9#9#9#9'data = dataAttr( this[0], key, data );'
      #9#9#9'}'
      ''
      #9#9#9'return data === undefined && parts[1] ?'
      #9#9#9#9'this.data( parts[0] ) :'
      #9#9#9#9'data;'
      ''
      #9#9'} else {'
      #9#9#9'return this.each(function() {'
      #9#9#9#9'var $this = jQuery( this ),'
      #9#9#9#9#9'args = [ parts[0], value ];'
      ''
      #9#9#9#9'$this.triggerHandler( "setData" + parts[1] + "!", args );'
      #9#9#9#9'jQuery.data( this, key, value );'
      #9#9#9#9'$this.triggerHandler( "changeData" + parts[1] + "!", args );'
      #9#9#9'});'
      #9#9'}'
      #9'},'
      ''
      #9'removeData: function( key ) {'
      #9#9'return this.each(function() {'
      #9#9#9'jQuery.removeData( this, key );'
      #9#9'});'
      #9'}'
      '});'
      ''
      'function dataAttr( elem, key, data ) {'
      #9'// If nothing was found internally, try to fetch any'
      #9'// data from the HTML5 data-* attribute'
      #9'if ( data === undefined && elem.nodeType === 1 ) {'
      #9#9'data = elem.getAttribute( "data-" + key );'
      ''
      #9#9'if ( typeof data === "string" ) {'
      #9#9#9'try {'
      #9#9#9#9'data = data === "true" ? true :'
      #9#9#9#9'data === "false" ? false :'
      #9#9#9#9'data === "null" ? null :'
      #9#9#9#9'!jQuery.isNaN( data ) ? parseFloat( data ) :'
      #9#9#9#9#9'rbrace.test( data ) ? jQuery.parseJSON( data ) :'
      #9#9#9#9#9'data;'
      #9#9#9'} catch( e ) {}'
      ''
      #9#9#9'// Make sure we set the data so it isn'#39't changed later'
      #9#9#9'jQuery.data( elem, key, data );'
      ''
      #9#9'} else {'
      #9#9#9'data = undefined;'
      #9#9'}'
      #9'}'
      ''
      #9'return data;'
      '}'
      ''
      ''
      ''
      ''
      'jQuery.extend({'
      #9'queue: function( elem, type, data ) {'
      #9#9'if ( !elem ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'type = (type || "fx") + "queue";'
      #9#9'var q = jQuery.data( elem, type );'
      ''
      
        #9#9'// Speed up dequeue by getting out quickly if this is just a l' +
        'ookup'
      #9#9'if ( !data ) {'
      #9#9#9'return q || [];'
      #9#9'}'
      ''
      #9#9'if ( !q || jQuery.isArray(data) ) {'
      #9#9#9'q = jQuery.data( elem, type, jQuery.makeArray(data) );'
      ''
      #9#9'} else {'
      #9#9#9'q.push( data );'
      #9#9'}'
      ''
      #9#9'return q;'
      #9'},'
      ''
      #9'dequeue: function( elem, type ) {'
      #9#9'type = type || "fx";'
      ''
      #9#9'var queue = jQuery.queue( elem, type ),'
      #9#9#9'fn = queue.shift();'
      ''
      
        #9#9'// If the fx queue is dequeued, always remove the progress sen' +
        'tinel'
      #9#9'if ( fn === "inprogress" ) {'
      #9#9#9'fn = queue.shift();'
      #9#9'}'
      ''
      #9#9'if ( fn ) {'
      #9#9#9'// Add a progress sentinel to prevent the fx queue from being'
      #9#9#9'// automatically dequeued'
      #9#9#9'if ( type === "fx" ) {'
      #9#9#9#9'queue.unshift("inprogress");'
      #9#9#9'}'
      ''
      #9#9#9'fn.call(elem, function() {'
      #9#9#9#9'jQuery.dequeue(elem, type);'
      #9#9#9'});'
      #9#9'}'
      #9'}'
      '});'
      ''
      'jQuery.fn.extend({'
      #9'queue: function( type, data ) {'
      #9#9'if ( typeof type !== "string" ) {'
      #9#9#9'data = type;'
      #9#9#9'type = "fx";'
      #9#9'}'
      ''
      #9#9'if ( data === undefined ) {'
      #9#9#9'return jQuery.queue( this[0], type );'
      #9#9'}'
      #9#9'return this.each(function( i ) {'
      #9#9#9'var queue = jQuery.queue( this, type, data );'
      ''
      #9#9#9'if ( type === "fx" && queue[0] !== "inprogress" ) {'
      #9#9#9#9'jQuery.dequeue( this, type );'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      #9'dequeue: function( type ) {'
      #9#9'return this.each(function() {'
      #9#9#9'jQuery.dequeue( this, type );'
      #9#9'});'
      #9'},'
      ''
      #9'// Based off of the plugin by Clint Helfers, with permission.'
      #9'// http://blindsignals.com/index.php/2009/07/jquery-delay/'
      #9'delay: function( time, type ) {'
      #9#9'time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;'
      #9#9'type = type || "fx";'
      ''
      #9#9'return this.queue( type, function() {'
      #9#9#9'var elem = this;'
      #9#9#9'setTimeout(function() {'
      #9#9#9#9'jQuery.dequeue( elem, type );'
      #9#9#9'}, time );'
      #9#9'});'
      #9'},'
      ''
      #9'clearQueue: function( type ) {'
      #9#9'return this.queue( type || "fx", [] );'
      #9'}'
      '});'
      ''
      ''
      ''
      ''
      'var rclass = /[\n\t]/g,'
      #9'rspaces = /\s+/,'
      #9'rreturn = /\r/g,'
      #9'rspecialurl = /^(?:href|src|style)$/,'
      #9'rtype = /^(?:button|input)$/i,'
      #9'rfocusable = /^(?:button|input|object|select|textarea)$/i,'
      #9'rclickable = /^a(?:rea)?$/i,'
      #9'rradiocheck = /^(?:radio|checkbox)$/i;'
      ''
      'jQuery.props = {'
      #9'"for": "htmlFor",'
      #9'"class": "className",'
      #9'readonly: "readOnly",'
      #9'maxlength: "maxLength",'
      #9'cellspacing: "cellSpacing",'
      #9'rowspan: "rowSpan",'
      #9'colspan: "colSpan",'
      #9'tabindex: "tabIndex",'
      #9'usemap: "useMap",'
      #9'frameborder: "frameBorder"'
      '};'
      ''
      'jQuery.fn.extend({'
      #9'attr: function( name, value ) {'
      #9#9'return jQuery.access( this, name, value, true, jQuery.attr );'
      #9'},'
      ''
      #9'removeAttr: function( name, fn ) {'
      #9#9'return this.each(function(){'
      #9#9#9'jQuery.attr( this, name, "" );'
      #9#9#9'if ( this.nodeType === 1 ) {'
      #9#9#9#9'this.removeAttribute( name );'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'addClass: function( value ) {'
      #9#9'if ( jQuery.isFunction(value) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'var self = jQuery(this);'
      #9#9#9#9'self.addClass( value.call(this, i, self.attr("class")) );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( value && typeof value === "string" ) {'
      #9#9#9'var classNames = (value || "").split( rspaces );'
      ''
      #9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9'var elem = this[i];'
      ''
      #9#9#9#9'if ( elem.nodeType === 1 ) {'
      #9#9#9#9#9'if ( !elem.className ) {'
      #9#9#9#9#9#9'elem.className = value;'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'var className = " " + elem.className + " ",'
      #9#9#9#9#9#9#9'setClass = elem.className;'
      ''
      #9#9#9#9#9#9'for ( var c = 0, cl = classNames.length; c < cl; c++ ) {'
      
        #9#9#9#9#9#9#9'if ( className.indexOf( " " + classNames[c] + " " ) < 0 )' +
        ' {'
      #9#9#9#9#9#9#9#9'setClass += " " + classNames[c];'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9#9'elem.className = jQuery.trim( setClass );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'removeClass: function( value ) {'
      #9#9'if ( jQuery.isFunction(value) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'var self = jQuery(this);'
      #9#9#9#9'self.removeClass( value.call(this, i, self.attr("class")) );'
      #9#9#9'});'
      #9#9'}'
      ''
      
        #9#9'if ( (value && typeof value === "string") || value === undefin' +
        'ed ) {'
      #9#9#9'var classNames = (value || "").split( rspaces );'
      ''
      #9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9'var elem = this[i];'
      ''
      #9#9#9#9'if ( elem.nodeType === 1 && elem.className ) {'
      #9#9#9#9#9'if ( value ) {'
      
        #9#9#9#9#9#9'var className = (" " + elem.className + " ").replace(rclas' +
        's, " ");'
      #9#9#9#9#9#9'for ( var c = 0, cl = classNames.length; c < cl; c++ ) {'
      
        #9#9#9#9#9#9#9'className = className.replace(" " + classNames[c] + " ", ' +
        '" ");'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9#9'elem.className = jQuery.trim( className );'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'elem.className = "";'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'toggleClass: function( value, stateVal ) {'
      #9#9'var type = typeof value,'
      #9#9#9'isBool = typeof stateVal === "boolean";'
      ''
      #9#9'if ( jQuery.isFunction( value ) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'var self = jQuery(this);'
      
        #9#9#9#9'self.toggleClass( value.call(this, i, self.attr("class"), st' +
        'ateVal), stateVal );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'return this.each(function() {'
      #9#9#9'if ( type === "string" ) {'
      #9#9#9#9'// toggle individual class names'
      #9#9#9#9'var className,'
      #9#9#9#9#9'i = 0,'
      #9#9#9#9#9'self = jQuery( this ),'
      #9#9#9#9#9'state = stateVal,'
      #9#9#9#9#9'classNames = value.split( rspaces );'
      ''
      #9#9#9#9'while ( (className = classNames[ i++ ]) ) {'
      #9#9#9#9#9'// check each className given, space seperated list'
      #9#9#9#9#9'state = isBool ? state : !self.hasClass( className );'
      #9#9#9#9#9'self[ state ? "addClass" : "removeClass" ]( className );'
      #9#9#9#9'}'
      ''
      #9#9#9'} else if ( type === "undefined" || type === "boolean" ) {'
      #9#9#9#9'if ( this.className ) {'
      #9#9#9#9#9'// store className if set'
      #9#9#9#9#9'jQuery.data( this, "__className__", this.className );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// toggle whole className'
      
        #9#9#9#9'this.className = this.className || value === false ? "" : jQ' +
        'uery.data( this, "__className__" ) || "";'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'hasClass: function( selector ) {'
      #9#9'var className = " " + selector + " ";'
      #9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      
        #9#9#9'if ( (" " + this[i].className + " ").replace(rclass, " ").ind' +
        'exOf( className ) > -1 ) {'
      #9#9#9#9'return true;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return false;'
      #9'},'
      ''
      #9'val: function( value ) {'
      #9#9'if ( !arguments.length ) {'
      #9#9#9'var elem = this[0];'
      ''
      #9#9#9'if ( elem ) {'
      #9#9#9#9'if ( jQuery.nodeName( elem, "option" ) ) {'
      #9#9#9#9#9'// attributes.value is undefined in Blackberry 4.7 but'
      #9#9#9#9#9'// uses .value. See #6932'
      #9#9#9#9#9'var val = elem.attributes.value;'
      #9#9#9#9#9'return !val || val.specified ? elem.value : elem.text;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// We need to handle select boxes special'
      #9#9#9#9'if ( jQuery.nodeName( elem, "select" ) ) {'
      #9#9#9#9#9'var index = elem.selectedIndex,'
      #9#9#9#9#9#9'values = [],'
      #9#9#9#9#9#9'options = elem.options,'
      #9#9#9#9#9#9'one = elem.type === "select-one";'
      ''
      #9#9#9#9#9'// Nothing was selected'
      #9#9#9#9#9'if ( index < 0 ) {'
      #9#9#9#9#9#9'return null;'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'// Loop through all the selected options'
      
        #9#9#9#9#9'for ( var i = one ? index : 0, max = one ? index + 1 : opti' +
        'ons.length; i < max; i++ ) {'
      #9#9#9#9#9#9'var option = options[ i ];'
      ''
      
        #9#9#9#9#9#9'// Don'#39't return options that are disabled or in a disabled' +
        ' optgroup'
      
        #9#9#9#9#9#9'if ( option.selected && (jQuery.support.optDisabled ? !opt' +
        'ion.disabled : option.getAttribute("disabled") === null) && '
      
        #9#9#9#9#9#9#9#9'(!option.parentNode.disabled || !jQuery.nodeName( option' +
        '.parentNode, "optgroup" )) ) {'
      ''
      #9#9#9#9#9#9#9'// Get the specific value for the option'
      #9#9#9#9#9#9#9'value = jQuery(option).val();'
      ''
      #9#9#9#9#9#9#9'// We don'#39't need an array for one selects'
      #9#9#9#9#9#9#9'if ( one ) {'
      #9#9#9#9#9#9#9#9'return value;'
      #9#9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9#9#9'// Multi-Selects return an array'
      #9#9#9#9#9#9#9'values.push( value );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'return values;'
      #9#9#9#9'}'
      ''
      
        #9#9#9#9'// Handle the case where in Webkit "" is returned instead of' +
        ' "on" if a value isn'#39't specified'
      
        #9#9#9#9'if ( rradiocheck.test( elem.type ) && !jQuery.support.checkO' +
        'n ) {'
      
        #9#9#9#9#9'return elem.getAttribute("value") === null ? "on" : elem.va' +
        'lue;'
      #9#9#9#9'}'
      #9#9#9#9
      ''
      #9#9#9#9'// Everything else, we just grab the value'
      #9#9#9#9'return (elem.value || "").replace(rreturn, "");'
      ''
      #9#9#9'}'
      ''
      #9#9#9'return undefined;'
      #9#9'}'
      ''
      #9#9'var isFunction = jQuery.isFunction(value);'
      ''
      #9#9'return this.each(function(i) {'
      #9#9#9'var self = jQuery(this), val = value;'
      ''
      #9#9#9'if ( this.nodeType !== 1 ) {'
      #9#9#9#9'return;'
      #9#9#9'}'
      ''
      #9#9#9'if ( isFunction ) {'
      #9#9#9#9'val = value.call(this, i, self.val());'
      #9#9#9'}'
      ''
      #9#9#9'// Treat null/undefined as ""; convert numbers to string'
      #9#9#9'if ( val == null ) {'
      #9#9#9#9'val = "";'
      #9#9#9'} else if ( typeof val === "number" ) {'
      #9#9#9#9'val += "";'
      #9#9#9'} else if ( jQuery.isArray(val) ) {'
      #9#9#9#9'val = jQuery.map(val, function (value) {'
      #9#9#9#9#9'return value == null ? "" : value + "";'
      #9#9#9#9'});'
      #9#9#9'}'
      ''
      #9#9#9'if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {'
      #9#9#9#9'this.checked = jQuery.inArray( self.val(), val ) >= 0;'
      ''
      #9#9#9'} else if ( jQuery.nodeName( this, "select" ) ) {'
      #9#9#9#9'var values = jQuery.makeArray(val);'
      ''
      #9#9#9#9'jQuery( "option", this ).each(function() {'
      
        #9#9#9#9#9'this.selected = jQuery.inArray( jQuery(this).val(), values ' +
        ') >= 0;'
      #9#9#9#9'});'
      ''
      #9#9#9#9'if ( !values.length ) {'
      #9#9#9#9#9'this.selectedIndex = -1;'
      #9#9#9#9'}'
      ''
      #9#9#9'} else {'
      #9#9#9#9'this.value = val;'
      #9#9#9'}'
      #9#9'});'
      #9'}'
      '});'
      ''
      'jQuery.extend({'
      #9'attrFn: {'
      #9#9'val: true,'
      #9#9'css: true,'
      #9#9'html: true,'
      #9#9'text: true,'
      #9#9'data: true,'
      #9#9'width: true,'
      #9#9'height: true,'
      #9#9'offset: true'
      #9'},'
      #9#9
      #9'attr: function( elem, name, value, pass ) {'
      #9#9'// don'#39't set attributes on text and comment nodes'
      #9#9'if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {'
      #9#9#9'return undefined;'
      #9#9'}'
      ''
      #9#9'if ( pass && name in jQuery.attrFn ) {'
      #9#9#9'return jQuery(elem)[name](value);'
      #9#9'}'
      ''
      #9#9'var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),'
      #9#9#9'// Whether we are setting (or getting)'
      #9#9#9'set = value !== undefined;'
      ''
      #9#9'// Try to normalize/fix the name'
      #9#9'name = notxml && jQuery.props[ name ] || name;'
      ''
      #9#9'// These attributes require special treatment'
      #9#9'var special = rspecialurl.test( name );'
      ''
      
        #9#9'// Safari mis-reports the default selected property of an opti' +
        'on'
      #9#9'// Accessing the parent'#39's selectedIndex property fixes it'
      #9#9'if ( name === "selected" && !jQuery.support.optSelected ) {'
      #9#9#9'var parent = elem.parentNode;'
      #9#9#9'if ( parent ) {'
      #9#9#9#9'parent.selectedIndex;'
      ''
      #9#9#9#9'// Make sure that it also works with optgroups, see #5701'
      #9#9#9#9'if ( parent.parentNode ) {'
      #9#9#9#9#9'parent.parentNode.selectedIndex;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'// If applicable, access the attribute via the DOM 0 way'
      #9#9'// '#39'in'#39' checks fail in Blackberry 4.7 #6931'
      
        #9#9'if ( (name in elem || elem[ name ] !== undefined) && notxml &&' +
        ' !special ) {'
      #9#9#9'if ( set ) {'
      
        #9#9#9#9'// We can'#39't allow the type property to be changed (since it ' +
        'causes problems in IE)'
      
        #9#9#9#9'if ( name === "type" && rtype.test( elem.nodeName ) && elem.' +
        'parentNode ) {'
      #9#9#9#9#9'jQuery.error( "type property can'#39't be changed" );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( value === null ) {'
      #9#9#9#9#9'if ( elem.nodeType === 1 ) {'
      #9#9#9#9#9#9'elem.removeAttribute( name );'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'elem[ name ] = value;'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      
        #9#9#9'// browsers index elements by id/name on forms, give priority' +
        ' to attributes.'
      
        #9#9#9'if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode' +
        '(name) ) {'
      #9#9#9#9'return elem.getAttributeNode( name ).nodeValue;'
      #9#9#9'}'
      ''
      
        #9#9#9'// elem.tabIndex doesn'#39't always return the correct value when' +
        ' it hasn'#39't been explicitly set'
      
        #9#9#9'// http://fluidproject.org/blog/2008/01/09/getting-setting-an' +
        'd-removing-tabindex-values-with-javascript/'
      #9#9#9'if ( name === "tabIndex" ) {'
      #9#9#9#9'var attributeNode = elem.getAttributeNode( "tabIndex" );'
      ''
      #9#9#9#9'return attributeNode && attributeNode.specified ?'
      #9#9#9#9#9'attributeNode.value :'
      
        #9#9#9#9#9'rfocusable.test( elem.nodeName ) || rclickable.test( elem.n' +
        'odeName ) && elem.href ?'
      #9#9#9#9#9#9'0 :'
      #9#9#9#9#9#9'undefined;'
      #9#9#9'}'
      ''
      #9#9#9'return elem[ name ];'
      #9#9'}'
      ''
      #9#9'if ( !jQuery.support.style && notxml && name === "style" ) {'
      #9#9#9'if ( set ) {'
      #9#9#9#9'elem.style.cssText = "" + value;'
      #9#9#9'}'
      ''
      #9#9#9'return elem.style.cssText;'
      #9#9'}'
      ''
      #9#9'if ( set ) {'
      
        #9#9#9'// convert the value to a string (all browsers do this but IE' +
        ') see #1070'
      #9#9#9'elem.setAttribute( name, "" + value );'
      #9#9'}'
      ''
      #9#9'// Ensure that missing attributes return undefined'
      #9#9'// Blackberry 4.7 returns "" from getAttribute #6938'
      
        #9#9'if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.h' +
        'asAttribute( name )) ) {'
      #9#9#9'return undefined;'
      #9#9'}'
      ''
      
        #9#9'var attr = !jQuery.support.hrefNormalized && notxml && special' +
        ' ?'
      #9#9#9#9'// Some attributes require a special call on IE'
      #9#9#9#9'elem.getAttribute( name, 2 ) :'
      #9#9#9#9'elem.getAttribute( name );'
      ''
      
        #9#9'// Non-existent attributes return null, we normalize to undefi' +
        'ned'
      #9#9'return attr === null ? undefined : attr;'
      #9'}'
      '});'
      ''
      ''
      ''
      ''
      'var rnamespaces = /\.(.*)$/,'
      #9'rformElems = /^(?:textarea|input|select)$/i,'
      #9'rperiod = /\./g,'
      #9'rspace = / /g,'
      #9'rescape = /[^\w\s.|`]/g,'
      #9'fcleanup = function( nm ) {'
      #9#9'return nm.replace(rescape, "\\$&");'
      #9'},'
      #9'focusCounts = { focusin: 0, focusout: 0 };'
      ''
      '/*'
      ' * A number of helper functions used for managing events.'
      ' * Many of the ideas behind this code originated from'
      ' * Dean Edwards'#39' addEvent library.'
      ' */'
      'jQuery.event = {'
      ''
      #9'// Bind an event to an element'
      #9'// Original by Dean Edwards'
      #9'add: function( elem, types, handler, data ) {'
      #9#9'if ( elem.nodeType === 3 || elem.nodeType === 8 ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      
        #9#9'// For whatever reason, IE has trouble passing the window obje' +
        'ct'
      #9#9'// around, causing it to be cloned in the process'
      
        #9#9'if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.fra' +
        'meElement ) ) {'
      #9#9#9'elem = window;'
      #9#9'}'
      ''
      #9#9'if ( handler === false ) {'
      #9#9#9'handler = returnFalse;'
      #9#9'} else if ( !handler ) {'
      #9#9#9'// Fixes bug #7229. Fix recommended by jdalton'
      #9#9'  return;'
      #9#9'}'
      ''
      #9#9'var handleObjIn, handleObj;'
      ''
      #9#9'if ( handler.handler ) {'
      #9#9#9'handleObjIn = handler;'
      #9#9#9'handler = handleObjIn.handler;'
      #9#9'}'
      ''
      #9#9'// Make sure that the function being executed has a unique ID'
      #9#9'if ( !handler.guid ) {'
      #9#9#9'handler.guid = jQuery.guid++;'
      #9#9'}'
      ''
      #9#9'// Init the element'#39's event structure'
      #9#9'var elemData = jQuery.data( elem );'
      ''
      
        #9#9'// If no elemData is found then we must be trying to bind to o' +
        'ne of the'
      #9#9'// banned noData elements'
      #9#9'if ( !elemData ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      
        #9#9'// Use a key less likely to result in collisions for plain JS ' +
        'objects.'
      #9#9'// Fixes bug #7150.'
      #9#9'var eventKey = elem.nodeType ? "events" : "__events__",'
      #9#9#9'events = elemData[ eventKey ],'
      #9#9#9'eventHandle = elemData.handle;'
      #9#9#9
      #9#9'if ( typeof events === "function" ) {'
      #9#9#9'// On plain objects events is a fn that holds the the data'
      #9#9#9'// which prevents this data from being JSON serialized'
      
        #9#9#9'// the function does not need to be called, it just contains ' +
        'the data'
      #9#9#9'eventHandle = events.handle;'
      #9#9#9'events = events.events;'
      ''
      #9#9'} else if ( !events ) {'
      #9#9#9'if ( !elem.nodeType ) {'
      #9#9#9#9'// On plain objects, create a fn that acts as the holder'
      #9#9#9#9'// of the values to avoid JSON serialization of event data'
      #9#9#9#9'elemData[ eventKey ] = elemData = function(){};'
      #9#9#9'}'
      ''
      #9#9#9'elemData.events = events = {};'
      #9#9'}'
      ''
      #9#9'if ( !eventHandle ) {'
      #9#9#9'elemData.handle = eventHandle = function() {'
      #9#9#9#9'// Handle the second event of a trigger and when'
      #9#9#9#9'// an event is called after a page has unloaded'
      
        #9#9#9#9'return typeof jQuery !== "undefined" && !jQuery.event.trigge' +
        'red ?'
      #9#9#9#9#9'jQuery.event.handle.apply( eventHandle.elem, arguments ) :'
      #9#9#9#9#9'undefined;'
      #9#9#9'};'
      #9#9'}'
      ''
      #9#9'// Add elem as a property of the handle function'
      
        #9#9'// This is to prevent a memory leak with non-native events in ' +
        'IE.'
      #9#9'eventHandle.elem = elem;'
      ''
      #9#9'// Handle multiple events separated by a space'
      #9#9'// jQuery(...).bind("mouseover mouseout", fn);'
      #9#9'types = types.split(" ");'
      ''
      #9#9'var type, i = 0, namespaces;'
      ''
      #9#9'while ( (type = types[ i++ ]) ) {'
      #9#9#9'handleObj = handleObjIn ?'
      #9#9#9#9'jQuery.extend({}, handleObjIn) :'
      #9#9#9#9'{ handler: handler, data: data };'
      ''
      #9#9#9'// Namespaced event handlers'
      #9#9#9'if ( type.indexOf(".") > -1 ) {'
      #9#9#9#9'namespaces = type.split(".");'
      #9#9#9#9'type = namespaces.shift();'
      #9#9#9#9'handleObj.namespace = namespaces.slice(0).sort().join(".");'
      ''
      #9#9#9'} else {'
      #9#9#9#9'namespaces = [];'
      #9#9#9#9'handleObj.namespace = "";'
      #9#9#9'}'
      ''
      #9#9#9'handleObj.type = type;'
      #9#9#9'if ( !handleObj.guid ) {'
      #9#9#9#9'handleObj.guid = handler.guid;'
      #9#9#9'}'
      ''
      #9#9#9'// Get the current list of functions bound to this event'
      #9#9#9'var handlers = events[ type ],'
      #9#9#9#9'special = jQuery.event.special[ type ] || {};'
      ''
      #9#9#9'// Init the event handler queue'
      #9#9#9'if ( !handlers ) {'
      #9#9#9#9'handlers = events[ type ] = [];'
      ''
      #9#9#9#9'// Check for a special event handler'
      #9#9#9#9'// Only use addEventListener/attachEvent if the special'
      #9#9#9#9'// events handler returns false'
      
        #9#9#9#9'if ( !special.setup || special.setup.call( elem, data, names' +
        'paces, eventHandle ) === false ) {'
      #9#9#9#9#9'// Bind the global event handler to the element'
      #9#9#9#9#9'if ( elem.addEventListener ) {'
      #9#9#9#9#9#9'elem.addEventListener( type, eventHandle, false );'
      ''
      #9#9#9#9#9'} else if ( elem.attachEvent ) {'
      #9#9#9#9#9#9'elem.attachEvent( "on" + type, eventHandle );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9#9
      #9#9#9'if ( special.add ) { '
      #9#9#9#9'special.add.call( elem, handleObj ); '
      ''
      #9#9#9#9'if ( !handleObj.handler.guid ) {'
      #9#9#9#9#9'handleObj.handler.guid = handler.guid;'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'// Add the function to the element'#39's handler list'
      #9#9#9'handlers.push( handleObj );'
      ''
      
        #9#9#9'// Keep track of which events have been used, for global trig' +
        'gering'
      #9#9#9'jQuery.event.global[ type ] = true;'
      #9#9'}'
      ''
      #9#9'// Nullify elem to prevent memory leaks in IE'
      #9#9'elem = null;'
      #9'},'
      ''
      #9'global: {},'
      ''
      #9'// Detach an event or set of events from an element'
      #9'remove: function( elem, types, handler, pos ) {'
      #9#9'// don'#39't do events on text and comment nodes'
      #9#9'if ( elem.nodeType === 3 || elem.nodeType === 8 ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'if ( handler === false ) {'
      #9#9#9'handler = returnFalse;'
      #9#9'}'
      ''
      
        #9#9'var ret, type, fn, j, i = 0, all, namespaces, namespace, speci' +
        'al, eventType, handleObj, origType,'
      #9#9#9'eventKey = elem.nodeType ? "events" : "__events__",'
      #9#9#9'elemData = jQuery.data( elem ),'
      #9#9#9'events = elemData && elemData[ eventKey ];'
      ''
      #9#9'if ( !elemData || !events ) {'
      #9#9#9'return;'
      #9#9'}'
      #9#9
      #9#9'if ( typeof events === "function" ) {'
      #9#9#9'elemData = events;'
      #9#9#9'events = events.events;'
      #9#9'}'
      ''
      #9#9'// types is actually an event object here'
      #9#9'if ( types && types.type ) {'
      #9#9#9'handler = types.handler;'
      #9#9#9'types = types.type;'
      #9#9'}'
      ''
      #9#9'// Unbind all events for the element'
      
        #9#9'if ( !types || typeof types === "string" && types.charAt(0) ==' +
        '= "." ) {'
      #9#9#9'types = types || "";'
      ''
      #9#9#9'for ( type in events ) {'
      #9#9#9#9'jQuery.event.remove( elem, type + types );'
      #9#9#9'}'
      ''
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'// Handle multiple events separated by a space'
      #9#9'// jQuery(...).unbind("mouseover mouseout", fn);'
      #9#9'types = types.split(" ");'
      ''
      #9#9'while ( (type = types[ i++ ]) ) {'
      #9#9#9'origType = type;'
      #9#9#9'handleObj = null;'
      #9#9#9'all = type.indexOf(".") < 0;'
      #9#9#9'namespaces = [];'
      ''
      #9#9#9'if ( !all ) {'
      #9#9#9#9'// Namespaced event handlers'
      #9#9#9#9'namespaces = type.split(".");'
      #9#9#9#9'type = namespaces.shift();'
      ''
      #9#9#9#9'namespace = new RegExp("(^|\\.)" + '
      
        #9#9#9#9#9'jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\' +
        '.(?:.*\\.)?") + "(\\.|$)");'
      #9#9#9'}'
      ''
      #9#9#9'eventType = events[ type ];'
      ''
      #9#9#9'if ( !eventType ) {'
      #9#9#9#9'continue;'
      #9#9#9'}'
      ''
      #9#9#9'if ( !handler ) {'
      #9#9#9#9'for ( j = 0; j < eventType.length; j++ ) {'
      #9#9#9#9#9'handleObj = eventType[ j ];'
      ''
      #9#9#9#9#9'if ( all || namespace.test( handleObj.namespace ) ) {'
      
        #9#9#9#9#9#9'jQuery.event.remove( elem, origType, handleObj.handler, j ' +
        ');'
      #9#9#9#9#9#9'eventType.splice( j--, 1 );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'continue;'
      #9#9#9'}'
      ''
      #9#9#9'special = jQuery.event.special[ type ] || {};'
      ''
      #9#9#9'for ( j = pos || 0; j < eventType.length; j++ ) {'
      #9#9#9#9'handleObj = eventType[ j ];'
      ''
      #9#9#9#9'if ( handler.guid === handleObj.guid ) {'
      #9#9#9#9#9'// remove the given handler for the given type'
      #9#9#9#9#9'if ( all || namespace.test( handleObj.namespace ) ) {'
      #9#9#9#9#9#9'if ( pos == null ) {'
      #9#9#9#9#9#9#9'eventType.splice( j--, 1 );'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9#9'if ( special.remove ) {'
      #9#9#9#9#9#9#9'special.remove.call( elem, handleObj );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'if ( pos != null ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'// remove generic event handler if no more handlers exist'
      
        #9#9#9'if ( eventType.length === 0 || pos != null && eventType.lengt' +
        'h === 1 ) {'
      
        #9#9#9#9'if ( !special.teardown || special.teardown.call( elem, names' +
        'paces ) === false ) {'
      #9#9#9#9#9'jQuery.removeEvent( elem, type, elemData.handle );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'ret = null;'
      #9#9#9#9'delete events[ type ];'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'// Remove the expando if it'#39's no longer used'
      #9#9'if ( jQuery.isEmptyObject( events ) ) {'
      #9#9#9'var handle = elemData.handle;'
      #9#9#9'if ( handle ) {'
      #9#9#9#9'handle.elem = null;'
      #9#9#9'}'
      ''
      #9#9#9'delete elemData.events;'
      #9#9#9'delete elemData.handle;'
      ''
      #9#9#9'if ( typeof elemData === "function" ) {'
      #9#9#9#9'jQuery.removeData( elem, eventKey );'
      ''
      #9#9#9'} else if ( jQuery.isEmptyObject( elemData ) ) {'
      #9#9#9#9'jQuery.removeData( elem );'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      ''
      #9'// bubbling is internal'
      #9'trigger: function( event, data, elem /*, bubbling */ ) {'
      #9#9'// Event object or event type'
      #9#9'var type = event.type || event,'
      #9#9#9'bubbling = arguments[3];'
      ''
      #9#9'if ( !bubbling ) {'
      #9#9#9'event = typeof event === "object" ?'
      #9#9#9#9'// jQuery.Event object'
      #9#9#9#9'event[ jQuery.expando ] ? event :'
      #9#9#9#9'// Object literal'
      #9#9#9#9'jQuery.extend( jQuery.Event(type), event ) :'
      #9#9#9#9'// Just the event type (string)'
      #9#9#9#9'jQuery.Event(type);'
      ''
      #9#9#9'if ( type.indexOf("!") >= 0 ) {'
      #9#9#9#9'event.type = type = type.slice(0, -1);'
      #9#9#9#9'event.exclusive = true;'
      #9#9#9'}'
      ''
      #9#9#9'// Handle a global trigger'
      #9#9#9'if ( !elem ) {'
      
        #9#9#9#9'// Don'#39't bubble custom events when global (to avoid too much' +
        ' overhead)'
      #9#9#9#9'event.stopPropagation();'
      ''
      #9#9#9#9'// Only trigger if we'#39've ever bound an event for it'
      #9#9#9#9'if ( jQuery.event.global[ type ] ) {'
      #9#9#9#9#9'jQuery.each( jQuery.cache, function() {'
      #9#9#9#9#9#9'if ( this.events && this.events[type] ) {'
      #9#9#9#9#9#9#9'jQuery.event.trigger( event, data, this.handle.elem );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'});'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'// Handle triggering a single element'
      ''
      #9#9#9'// don'#39't do events on text and comment nodes'
      #9#9#9'if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {'
      #9#9#9#9'return undefined;'
      #9#9#9'}'
      ''
      #9#9#9'// Clean up in case it is reused'
      #9#9#9'event.result = undefined;'
      #9#9#9'event.target = elem;'
      ''
      #9#9#9'// Clone the incoming data, if any'
      #9#9#9'data = jQuery.makeArray( data );'
      #9#9#9'data.unshift( event );'
      #9#9'}'
      ''
      #9#9'event.currentTarget = elem;'
      ''
      
        #9#9'// Trigger the event, it is assumed that "handle" is a functio' +
        'n'
      #9#9'var handle = elem.nodeType ?'
      #9#9#9'jQuery.data( elem, "handle" ) :'
      #9#9#9'(jQuery.data( elem, "__events__" ) || {}).handle;'
      ''
      #9#9'if ( handle ) {'
      #9#9#9'handle.apply( elem, data );'
      #9#9'}'
      ''
      #9#9'var parent = elem.parentNode || elem.ownerDocument;'
      ''
      #9#9'// Trigger an inline bound script'
      #9#9'try {'
      
        #9#9#9'if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.t' +
        'oLowerCase()]) ) {'
      
        #9#9#9#9'if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem,' +
        ' data ) === false ) {'
      #9#9#9#9#9'event.result = false;'
      #9#9#9#9#9'event.preventDefault();'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      
        #9#9'// prevent IE from throwing an error for some elements with so' +
        'me event types, see #3533'
      #9#9'} catch (inlineError) {}'
      ''
      #9#9'if ( !event.isPropagationStopped() && parent ) {'
      #9#9#9'jQuery.event.trigger( event, data, parent, true );'
      ''
      #9#9'} else if ( !event.isDefaultPrevented() ) {'
      #9#9#9'var old,'
      #9#9#9#9'target = event.target,'
      #9#9#9#9'targetType = type.replace( rnamespaces, "" ),'
      
        #9#9#9#9'isClick = jQuery.nodeName( target, "a" ) && targetType === "' +
        'click",'
      #9#9#9#9'special = jQuery.event.special[ targetType ] || {};'
      ''
      
        #9#9#9'if ( (!special._default || special._default.call( elem, event' +
        ' ) === false) && '
      
        #9#9#9#9'!isClick && !(target && target.nodeName && jQuery.noData[tar' +
        'get.nodeName.toLowerCase()]) ) {'
      ''
      #9#9#9#9'try {'
      #9#9#9#9#9'if ( target[ targetType ] ) {'
      
        #9#9#9#9#9#9'// Make sure that we don'#39't accidentally re-trigger the onF' +
        'OO events'
      #9#9#9#9#9#9'old = target[ "on" + targetType ];'
      ''
      #9#9#9#9#9#9'if ( old ) {'
      #9#9#9#9#9#9#9'target[ "on" + targetType ] = null;'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9#9'jQuery.event.triggered = true;'
      #9#9#9#9#9#9'target[ targetType ]();'
      #9#9#9#9#9'}'
      ''
      
        #9#9#9#9'// prevent IE from throwing an error for some elements with ' +
        'some event types, see #3533'
      #9#9#9#9'} catch (triggerError) {}'
      ''
      #9#9#9#9'if ( old ) {'
      #9#9#9#9#9'target[ "on" + targetType ] = old;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'jQuery.event.triggered = false;'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      ''
      #9'handle: function( event ) {'
      #9#9'var all, handlers, namespaces, namespace_re, events,'
      #9#9#9'namespace_sort = [],'
      #9#9#9'args = jQuery.makeArray( arguments );'
      ''
      #9#9'event = args[0] = jQuery.event.fix( event || window.event );'
      #9#9'event.currentTarget = this;'
      ''
      #9#9'// Namespaced event handlers'
      #9#9'all = event.type.indexOf(".") < 0 && !event.exclusive;'
      ''
      #9#9'if ( !all ) {'
      #9#9#9'namespaces = event.type.split(".");'
      #9#9#9'event.type = namespaces.shift();'
      #9#9#9'namespace_sort = namespaces.slice(0).sort();'
      
        #9#9#9'namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\' +
        '.(?:.*\\.)?") + "(\\.|$)");'
      #9#9'}'
      ''
      #9#9'event.namespace = event.namespace || namespace_sort.join(".");'
      ''
      
        #9#9'events = jQuery.data(this, this.nodeType ? "events" : "__event' +
        's__");'
      ''
      #9#9'if ( typeof events === "function" ) {'
      #9#9#9'events = events.events;'
      #9#9'}'
      ''
      #9#9'handlers = (events || {})[ event.type ];'
      ''
      #9#9'if ( events && handlers ) {'
      #9#9#9'// Clone the handlers to prevent manipulation'
      #9#9#9'handlers = handlers.slice(0);'
      ''
      #9#9#9'for ( var j = 0, l = handlers.length; j < l; j++ ) {'
      #9#9#9#9'var handleObj = handlers[ j ];'
      ''
      #9#9#9#9'// Filter the functions by class'
      #9#9#9#9'if ( all || namespace_re.test( handleObj.namespace ) ) {'
      #9#9#9#9#9'// Pass in a reference to the handler function itself'
      #9#9#9#9#9'// So that we can later remove it'
      #9#9#9#9#9'event.handler = handleObj.handler;'
      #9#9#9#9#9'event.data = handleObj.data;'
      #9#9#9#9#9'event.handleObj = handleObj;'
      #9
      #9#9#9#9#9'var ret = handleObj.handler.apply( this, args );'
      ''
      #9#9#9#9#9'if ( ret !== undefined ) {'
      #9#9#9#9#9#9'event.result = ret;'
      #9#9#9#9#9#9'if ( ret === false ) {'
      #9#9#9#9#9#9#9'event.preventDefault();'
      #9#9#9#9#9#9#9'event.stopPropagation();'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'if ( event.isImmediatePropagationStopped() ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return event.result;'
      #9'},'
      ''
      
        #9'props: "altKey attrChange attrName bubbles button cancelable ch' +
        'arCode clientX clientY ctrlKey currentTarget data detail eventPh' +
        'ase fromElement handler keyCode layerX layerY metaKey newValue o' +
        'ffsetX offsetY pageX pageY prevValue relatedNode relatedTarget s' +
        'creenX screenY shiftKey srcElement target toElement view wheelDe' +
        'lta which".split(" "),'
      ''
      #9'fix: function( event ) {'
      #9#9'if ( event[ jQuery.expando ] ) {'
      #9#9#9'return event;'
      #9#9'}'
      ''
      #9#9'// store a copy of the original event object'
      #9#9'// and "clone" to set read-only properties'
      #9#9'var originalEvent = event;'
      #9#9'event = jQuery.Event( originalEvent );'
      ''
      #9#9'for ( var i = this.props.length, prop; i; ) {'
      #9#9#9'prop = this.props[ --i ];'
      #9#9#9'event[ prop ] = originalEvent[ prop ];'
      #9#9'}'
      ''
      #9#9'// Fix target property, if necessary'
      #9#9'if ( !event.target ) {'
      #9#9#9'// Fixes #1925 where srcElement might not be defined either'
      #9#9#9'event.target = event.srcElement || document;'
      #9#9'}'
      ''
      #9#9'// check if target is a textnode (safari)'
      #9#9'if ( event.target.nodeType === 3 ) {'
      #9#9#9'event.target = event.target.parentNode;'
      #9#9'}'
      ''
      #9#9'// Add relatedTarget, if necessary'
      #9#9'if ( !event.relatedTarget && event.fromElement ) {'
      
        #9#9#9'event.relatedTarget = event.fromElement === event.target ? ev' +
        'ent.toElement : event.fromElement;'
      #9#9'}'
      ''
      #9#9'// Calculate pageX/Y if missing and clientX/Y available'
      #9#9'if ( event.pageX == null && event.clientX != null ) {'
      #9#9#9'var doc = document.documentElement,'
      #9#9#9#9'body = document.body;'
      ''
      
        #9#9#9'event.pageX = event.clientX + (doc && doc.scrollLeft || body ' +
        '&& body.scrollLeft || 0) - (doc && doc.clientLeft || body && bod' +
        'y.clientLeft || 0);'
      
        #9#9#9'event.pageY = event.clientY + (doc && doc.scrollTop  || body ' +
        '&& body.scrollTop  || 0) - (doc && doc.clientTop  || body && bod' +
        'y.clientTop  || 0);'
      #9#9'}'
      ''
      #9#9'// Add which for key events'
      
        #9#9'if ( event.which == null && (event.charCode != null || event.k' +
        'eyCode != null) ) {'
      
        #9#9#9'event.which = event.charCode != null ? event.charCode : event' +
        '.keyCode;'
      #9#9'}'
      ''
      
        #9#9'// Add metaKey to non-Mac browsers (use ctrl for PC'#39's and Meta' +
        ' for Macs)'
      #9#9'if ( !event.metaKey && event.ctrlKey ) {'
      #9#9#9'event.metaKey = event.ctrlKey;'
      #9#9'}'
      ''
      #9#9'// Add which for click: 1 === left; 2 === middle; 3 === right'
      #9#9'// Note: button is not normalized, so don'#39't use it'
      #9#9'if ( !event.which && event.button !== undefined ) {'
      
        #9#9#9'event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 ' +
        ': ( event.button & 4 ? 2 : 0 ) ));'
      #9#9'}'
      ''
      #9#9'return event;'
      #9'},'
      ''
      #9'// Deprecated, use jQuery.guid instead'
      #9'guid: 1E8,'
      ''
      #9'// Deprecated, use jQuery.proxy instead'
      #9'proxy: jQuery.proxy,'
      ''
      #9'special: {'
      #9#9'ready: {'
      #9#9#9'// Make sure the ready event is setup'
      #9#9#9'setup: jQuery.bindReady,'
      #9#9#9'teardown: jQuery.noop'
      #9#9'},'
      ''
      #9#9'live: {'
      #9#9#9'add: function( handleObj ) {'
      #9#9#9#9'jQuery.event.add( this,'
      #9#9#9#9#9'liveConvert( handleObj.origType, handleObj.selector ),'
      
        #9#9#9#9#9'jQuery.extend({}, handleObj, {handler: liveHandler, guid: h' +
        'andleObj.handler.guid}) ); '
      #9#9#9'},'
      ''
      #9#9#9'remove: function( handleObj ) {'
      
        #9#9#9#9'jQuery.event.remove( this, liveConvert( handleObj.origType, ' +
        'handleObj.selector ), handleObj );'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'beforeunload: {'
      #9#9#9'setup: function( data, namespaces, eventHandle ) {'
      #9#9#9#9'// We only want to do this special case on windows'
      #9#9#9#9'if ( jQuery.isWindow( this ) ) {'
      #9#9#9#9#9'this.onbeforeunload = eventHandle;'
      #9#9#9#9'}'
      #9#9#9'},'
      ''
      #9#9#9'teardown: function( namespaces, eventHandle ) {'
      #9#9#9#9'if ( this.onbeforeunload === eventHandle ) {'
      #9#9#9#9#9'this.onbeforeunload = null;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      '};'
      ''
      'jQuery.removeEvent = document.removeEventListener ?'
      #9'function( elem, type, handle ) {'
      #9#9'if ( elem.removeEventListener ) {'
      #9#9#9'elem.removeEventListener( type, handle, false );'
      #9#9'}'
      #9'} : '
      #9'function( elem, type, handle ) {'
      #9#9'if ( elem.detachEvent ) {'
      #9#9#9'elem.detachEvent( "on" + type, handle );'
      #9#9'}'
      #9'};'
      ''
      'jQuery.Event = function( src ) {'
      #9'// Allow instantiation without the '#39'new'#39' keyword'
      #9'if ( !this.preventDefault ) {'
      #9#9'return new jQuery.Event( src );'
      #9'}'
      ''
      #9'// Event object'
      #9'if ( src && src.type ) {'
      #9#9'this.originalEvent = src;'
      #9#9'this.type = src.type;'
      #9'// Event type'
      #9'} else {'
      #9#9'this.type = src;'
      #9'}'
      ''
      #9'// timeStamp is buggy for some events on Firefox(#3843)'
      #9'// So we won'#39't rely on the native value'
      #9'this.timeStamp = jQuery.now();'
      ''
      #9'// Mark it as fixed'
      #9'this[ jQuery.expando ] = true;'
      '};'
      ''
      'function returnFalse() {'
      #9'return false;'
      '}'
      'function returnTrue() {'
      #9'return true;'
      '}'
      ''
      
        '// jQuery.Event is based on DOM3 Events as specified by the ECMA' +
        'Script Language Binding'
      
        '// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma' +
        '-script-binding.html'
      'jQuery.Event.prototype = {'
      #9'preventDefault: function() {'
      #9#9'this.isDefaultPrevented = returnTrue;'
      ''
      #9#9'var e = this.originalEvent;'
      #9#9'if ( !e ) {'
      #9#9#9'return;'
      #9#9'}'
      #9#9
      #9#9'// if preventDefault exists run it on the original event'
      #9#9'if ( e.preventDefault ) {'
      #9#9#9'e.preventDefault();'
      ''
      
        #9#9'// otherwise set the returnValue property of the original even' +
        't to false (IE)'
      #9#9'} else {'
      #9#9#9'e.returnValue = false;'
      #9#9'}'
      #9'},'
      #9'stopPropagation: function() {'
      #9#9'this.isPropagationStopped = returnTrue;'
      ''
      #9#9'var e = this.originalEvent;'
      #9#9'if ( !e ) {'
      #9#9#9'return;'
      #9#9'}'
      #9#9'// if stopPropagation exists run it on the original event'
      #9#9'if ( e.stopPropagation ) {'
      #9#9#9'e.stopPropagation();'
      #9#9'}'
      
        #9#9'// otherwise set the cancelBubble property of the original eve' +
        'nt to true (IE)'
      #9#9'e.cancelBubble = true;'
      #9'},'
      #9'stopImmediatePropagation: function() {'
      #9#9'this.isImmediatePropagationStopped = returnTrue;'
      #9#9'this.stopPropagation();'
      #9'},'
      #9'isDefaultPrevented: returnFalse,'
      #9'isPropagationStopped: returnFalse,'
      #9'isImmediatePropagationStopped: returnFalse'
      '};'
      ''
      
        '// Checks if an event happened on an element within another elem' +
        'ent'
      
        '// Used in jQuery.event.special.mouseenter and mouseleave handle' +
        'rs'
      'var withinElement = function( event ) {'
      
        #9'// Check if mouse(over|out) are still within the same parent el' +
        'ement'
      #9'var parent = event.relatedTarget;'
      ''
      #9'// Firefox sometimes assigns relatedTarget a XUL element'
      #9'// which we cannot access the parentNode property of'
      #9'try {'
      #9#9'// Traverse up the tree'
      #9#9'while ( parent && parent !== this ) {'
      #9#9#9'parent = parent.parentNode;'
      #9#9'}'
      ''
      #9#9'if ( parent !== this ) {'
      #9#9#9'// set the correct event type'
      #9#9#9'event.type = event.data;'
      ''
      
        #9#9#9'// handle event if we actually just moused on to a non sub-el' +
        'ement'
      #9#9#9'jQuery.event.handle.apply( this, arguments );'
      #9#9'}'
      ''
      
        #9'// assuming we'#39've left the element since we most likely mousedo' +
        'ver a xul element'
      #9'} catch(e) { }'
      '},'
      ''
      
        '// In case of event delegation, we only need to rename the event' +
        '.type,'
      '// liveHandler will take care of the rest.'
      'delegate = function( event ) {'
      #9'event.type = event.data;'
      #9'jQuery.event.handle.apply( this, arguments );'
      '};'
      ''
      '// Create mouseenter and mouseleave events'
      'jQuery.each({'
      #9'mouseenter: "mouseover",'
      #9'mouseleave: "mouseout"'
      '}, function( orig, fix ) {'
      #9'jQuery.event.special[ orig ] = {'
      #9#9'setup: function( data ) {'
      
        #9#9#9'jQuery.event.add( this, fix, data && data.selector ? delegate' +
        ' : withinElement, orig );'
      #9#9'},'
      #9#9'teardown: function( data ) {'
      
        #9#9#9'jQuery.event.remove( this, fix, data && data.selector ? deleg' +
        'ate : withinElement );'
      #9#9'}'
      #9'};'
      '});'
      ''
      '// submit delegation'
      'if ( !jQuery.support.submitBubbles ) {'
      ''
      #9'jQuery.event.special.submit = {'
      #9#9'setup: function( data, namespaces ) {'
      #9#9#9'if ( this.nodeName.toLowerCase() !== "form" ) {'
      
        #9#9#9#9'jQuery.event.add(this, "click.specialSubmit", function( e ) ' +
        '{'
      #9#9#9#9#9'var elem = e.target,'
      #9#9#9#9#9#9'type = elem.type;'
      ''
      
        #9#9#9#9#9'if ( (type === "submit" || type === "image") && jQuery( ele' +
        'm ).closest("form").length ) {'
      #9#9#9#9#9#9'e.liveFired = undefined;'
      #9#9#9#9#9#9'return trigger( "submit", this, arguments );'
      #9#9#9#9#9'}'
      #9#9#9#9'});'
      #9' '
      
        #9#9#9#9'jQuery.event.add(this, "keypress.specialSubmit", function( e' +
        ' ) {'
      #9#9#9#9#9'var elem = e.target,'
      #9#9#9#9#9#9'type = elem.type;'
      ''
      
        #9#9#9#9#9'if ( (type === "text" || type === "password") && jQuery( el' +
        'em ).closest("form").length && e.keyCode === 13 ) {'
      #9#9#9#9#9#9'e.liveFired = undefined;'
      #9#9#9#9#9#9'return trigger( "submit", this, arguments );'
      #9#9#9#9#9'}'
      #9#9#9#9'});'
      ''
      #9#9#9'} else {'
      #9#9#9#9'return false;'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'teardown: function( namespaces ) {'
      #9#9#9'jQuery.event.remove( this, ".specialSubmit" );'
      #9#9'}'
      #9'};'
      ''
      '}'
      ''
      '// change delegation, happens here so we have bind.'
      'if ( !jQuery.support.changeBubbles ) {'
      ''
      #9'var changeFilters,'
      ''
      #9'getVal = function( elem ) {'
      #9#9'var type = elem.type, val = elem.value;'
      ''
      #9#9'if ( type === "radio" || type === "checkbox" ) {'
      #9#9#9'val = elem.checked;'
      ''
      #9#9'} else if ( type === "select-multiple" ) {'
      #9#9#9'val = elem.selectedIndex > -1 ?'
      #9#9#9#9'jQuery.map( elem.options, function( elem ) {'
      #9#9#9#9#9'return elem.selected;'
      #9#9#9#9'}).join("-") :'
      #9#9#9#9'"";'
      ''
      #9#9'} else if ( elem.nodeName.toLowerCase() === "select" ) {'
      #9#9#9'val = elem.selectedIndex;'
      #9#9'}'
      ''
      #9#9'return val;'
      #9'},'
      ''
      #9'testChange = function testChange( e ) {'
      #9#9'var elem = e.target, data, val;'
      ''
      #9#9'if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'data = jQuery.data( elem, "_change_data" );'
      #9#9'val = getVal(elem);'
      ''
      #9#9'// the current data will be also retrieved by beforeactivate'
      #9#9'if ( e.type !== "focusout" || elem.type !== "radio" ) {'
      #9#9#9'jQuery.data( elem, "_change_data", val );'
      #9#9'}'
      #9#9
      #9#9'if ( data === undefined || val === data ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'if ( data != null || val ) {'
      #9#9#9'e.type = "change";'
      #9#9#9'e.liveFired = undefined;'
      #9#9#9'return jQuery.event.trigger( e, arguments[1], elem );'
      #9#9'}'
      #9'};'
      ''
      #9'jQuery.event.special.change = {'
      #9#9'filters: {'
      #9#9#9'focusout: testChange, '
      ''
      #9#9#9'beforedeactivate: testChange,'
      ''
      #9#9#9'click: function( e ) {'
      #9#9#9#9'var elem = e.target, type = elem.type;'
      ''
      
        #9#9#9#9'if ( type === "radio" || type === "checkbox" || elem.nodeNam' +
        'e.toLowerCase() === "select" ) {'
      #9#9#9#9#9'return testChange.call( this, e );'
      #9#9#9#9'}'
      #9#9#9'},'
      ''
      #9#9#9'// Change has to be called before submit'
      
        #9#9#9'// Keydown will be called before keypress, which is used in s' +
        'ubmit-event delegation'
      #9#9#9'keydown: function( e ) {'
      #9#9#9#9'var elem = e.target, type = elem.type;'
      ''
      
        #9#9#9#9'if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "t' +
        'extarea") ||'
      
        #9#9#9#9#9'(e.keyCode === 32 && (type === "checkbox" || type === "radi' +
        'o")) ||'
      #9#9#9#9#9'type === "select-multiple" ) {'
      #9#9#9#9#9'return testChange.call( this, e );'
      #9#9#9#9'}'
      #9#9#9'},'
      ''
      
        #9#9#9'// Beforeactivate happens also before the previous element is' +
        ' blurred'
      
        #9#9#9'// with this event you can'#39't trigger a change event, but you ' +
        'can store'
      #9#9#9'// information'
      #9#9#9'beforeactivate: function( e ) {'
      #9#9#9#9'var elem = e.target;'
      #9#9#9#9'jQuery.data( elem, "_change_data", getVal(elem) );'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'setup: function( data, namespaces ) {'
      #9#9#9'if ( this.type === "file" ) {'
      #9#9#9#9'return false;'
      #9#9#9'}'
      ''
      #9#9#9'for ( var type in changeFilters ) {'
      
        #9#9#9#9'jQuery.event.add( this, type + ".specialChange", changeFilte' +
        'rs[type] );'
      #9#9#9'}'
      ''
      #9#9#9'return rformElems.test( this.nodeName );'
      #9#9'},'
      ''
      #9#9'teardown: function( namespaces ) {'
      #9#9#9'jQuery.event.remove( this, ".specialChange" );'
      ''
      #9#9#9'return rformElems.test( this.nodeName );'
      #9#9'}'
      #9'};'
      ''
      #9'changeFilters = jQuery.event.special.change.filters;'
      ''
      #9'// Handle when the input is .focus()'#39'd'
      #9'changeFilters.focus = changeFilters.beforeactivate;'
      '}'
      ''
      'function trigger( type, elem, args ) {'
      #9'args[0].type = type;'
      #9'return jQuery.event.handle.apply( elem, args );'
      '}'
      ''
      '// Create "bubbling" focus and blur events'
      'if ( document.addEventListener ) {'
      
        #9'jQuery.each({ focus: "focusin", blur: "focusout" }, function( o' +
        'rig, fix ) {'
      #9#9'jQuery.event.special[ fix ] = {'
      #9#9#9'setup: function() {'
      #9#9#9#9'if ( focusCounts[fix]++ === 0 ) {'
      #9#9#9#9#9'document.addEventListener( orig, handler, true );'
      #9#9#9#9'}'
      #9#9#9'}, '
      #9#9#9'teardown: function() { '
      #9#9#9#9'if ( --focusCounts[fix] === 0 ) {'
      #9#9#9#9#9'document.removeEventListener( orig, handler, true );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'};'
      ''
      #9#9'function handler( e ) { '
      #9#9#9'e = jQuery.event.fix( e );'
      #9#9#9'e.type = fix;'
      #9#9#9'return jQuery.event.trigger( e, null, e.target );'
      #9#9'}'
      #9'});'
      '}'
      ''
      'jQuery.each(["bind", "one"], function( i, name ) {'
      #9'jQuery.fn[ name ] = function( type, data, fn ) {'
      #9#9'// Handle object literals'
      #9#9'if ( typeof type === "object" ) {'
      #9#9#9'for ( var key in type ) {'
      #9#9#9#9'this[ name ](key, data, type[key], fn);'
      #9#9#9'}'
      #9#9#9'return this;'
      #9#9'}'
      #9#9
      #9#9'if ( jQuery.isFunction( data ) || data === false ) {'
      #9#9#9'fn = data;'
      #9#9#9'data = undefined;'
      #9#9'}'
      ''
      
        #9#9'var handler = name === "one" ? jQuery.proxy( fn, function( eve' +
        'nt ) {'
      #9#9#9'jQuery( this ).unbind( event, handler );'
      #9#9#9'return fn.apply( this, arguments );'
      #9#9'}) : fn;'
      ''
      #9#9'if ( type === "unload" && name !== "one" ) {'
      #9#9#9'this.one( type, data, fn );'
      ''
      #9#9'} else {'
      #9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9'jQuery.event.add( this[i], type, handler, data );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'};'
      '});'
      ''
      'jQuery.fn.extend({'
      #9'unbind: function( type, fn ) {'
      #9#9'// Handle object literals'
      #9#9'if ( typeof type === "object" && !type.preventDefault ) {'
      #9#9#9'for ( var key in type ) {'
      #9#9#9#9'this.unbind(key, type[key]);'
      #9#9#9'}'
      ''
      #9#9'} else {'
      #9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9'jQuery.event.remove( this[i], type, fn );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      #9
      #9'delegate: function( selector, types, data, fn ) {'
      #9#9'return this.live( types, data, fn, selector );'
      #9'},'
      #9
      #9'undelegate: function( selector, types, fn ) {'
      #9#9'if ( arguments.length === 0 ) {'
      #9#9#9#9'return this.unbind( "live" );'
      #9#9
      #9#9'} else {'
      #9#9#9'return this.die( types, null, fn, selector );'
      #9#9'}'
      #9'},'
      #9
      #9'trigger: function( type, data ) {'
      #9#9'return this.each(function() {'
      #9#9#9'jQuery.event.trigger( type, data, this );'
      #9#9'});'
      #9'},'
      ''
      #9'triggerHandler: function( type, data ) {'
      #9#9'if ( this[0] ) {'
      #9#9#9'var event = jQuery.Event( type );'
      #9#9#9'event.preventDefault();'
      #9#9#9'event.stopPropagation();'
      #9#9#9'jQuery.event.trigger( event, data, this[0] );'
      #9#9#9'return event.result;'
      #9#9'}'
      #9'},'
      ''
      #9'toggle: function( fn ) {'
      #9#9'// Save reference to arguments for access in closure'
      #9#9'var args = arguments,'
      #9#9#9'i = 1;'
      ''
      
        #9#9'// link all the functions, so any of them can unbind this clic' +
        'k handler'
      #9#9'while ( i < args.length ) {'
      #9#9#9'jQuery.proxy( fn, args[ i++ ] );'
      #9#9'}'
      ''
      #9#9'return this.click( jQuery.proxy( fn, function( event ) {'
      #9#9#9'// Figure out which function to execute'
      
        #9#9#9'var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ' +
        ') || 0 ) % i;'
      #9#9#9'jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );'
      ''
      #9#9#9'// Make sure that clicks stop'
      #9#9#9'event.preventDefault();'
      ''
      #9#9#9'// and execute the function'
      #9#9#9'return args[ lastToggle ].apply( this, arguments ) || false;'
      #9#9'}));'
      #9'},'
      ''
      #9'hover: function( fnOver, fnOut ) {'
      
        #9#9'return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver )' +
        ';'
      #9'}'
      '});'
      ''
      'var liveMap = {'
      #9'focus: "focusin",'
      #9'blur: "focusout",'
      #9'mouseenter: "mouseover",'
      #9'mouseleave: "mouseout"'
      '};'
      ''
      'jQuery.each(["live", "die"], function( i, name ) {'
      
        #9'jQuery.fn[ name ] = function( types, data, fn, origSelector /* ' +
        'Internal Use Only */ ) {'
      #9#9'var type, i = 0, match, namespaces, preType,'
      #9#9#9'selector = origSelector || this.selector,'
      #9#9#9'context = origSelector ? this : jQuery( this.context );'
      #9#9
      #9#9'if ( typeof types === "object" && !types.preventDefault ) {'
      #9#9#9'for ( var key in types ) {'
      #9#9#9#9'context[ name ]( key, data, types[key], selector );'
      #9#9#9'}'
      #9#9#9
      #9#9#9'return this;'
      #9#9'}'
      ''
      #9#9'if ( jQuery.isFunction( data ) ) {'
      #9#9#9'fn = data;'
      #9#9#9'data = undefined;'
      #9#9'}'
      ''
      #9#9'types = (types || "").split(" ");'
      ''
      #9#9'while ( (type = types[ i++ ]) != null ) {'
      #9#9#9'match = rnamespaces.exec( type );'
      #9#9#9'namespaces = "";'
      ''
      #9#9#9'if ( match )  {'
      #9#9#9#9'namespaces = match[0];'
      #9#9#9#9'type = type.replace( rnamespaces, "" );'
      #9#9#9'}'
      ''
      #9#9#9'if ( type === "hover" ) {'
      
        #9#9#9#9'types.push( "mouseenter" + namespaces, "mouseleave" + namesp' +
        'aces );'
      #9#9#9#9'continue;'
      #9#9#9'}'
      ''
      #9#9#9'preType = type;'
      ''
      #9#9#9'if ( type === "focus" || type === "blur" ) {'
      #9#9#9#9'types.push( liveMap[ type ] + namespaces );'
      #9#9#9#9'type = type + namespaces;'
      ''
      #9#9#9'} else {'
      #9#9#9#9'type = (liveMap[ type ] || type) + namespaces;'
      #9#9#9'}'
      ''
      #9#9#9'if ( name === "live" ) {'
      #9#9#9#9'// bind live handler'
      #9#9#9#9'for ( var j = 0, l = context.length; j < l; j++ ) {'
      
        #9#9#9#9#9'jQuery.event.add( context[j], "live." + liveConvert( type, ' +
        'selector ),'
      
        #9#9#9#9#9#9'{ data: data, selector: selector, handler: fn, origType: t' +
        'ype, origHandler: fn, preType: preType } );'
      #9#9#9#9'}'
      ''
      #9#9#9'} else {'
      #9#9#9#9'// unbind live handler'
      
        #9#9#9#9'context.unbind( "live." + liveConvert( type, selector ), fn ' +
        ');'
      #9#9#9'}'
      #9#9'}'
      #9#9
      #9#9'return this;'
      #9'};'
      '});'
      ''
      'function liveHandler( event ) {'
      
        #9'var stop, maxLevel, related, match, handleObj, elem, j, i, l, d' +
        'ata, close, namespace, ret,'
      #9#9'elems = [],'
      #9#9'selectors = [],'
      
        #9#9'events = jQuery.data( this, this.nodeType ? "events" : "__even' +
        'ts__" );'
      ''
      #9'if ( typeof events === "function" ) {'
      #9#9'events = events.events;'
      #9'}'
      ''
      
        #9'// Make sure we avoid non-left-click bubbling in Firefox (#3861' +
        ')'
      
        #9'if ( event.liveFired === this || !events || !events.live || eve' +
        'nt.button && event.type === "click" ) {'
      #9#9'return;'
      #9'}'
      #9
      #9'if ( event.namespace ) {'
      
        #9#9'namespace = new RegExp("(^|\\.)" + event.namespace.split(".").' +
        'join("\\.(?:.*\\.)?") + "(\\.|$)");'
      #9'}'
      ''
      #9'event.liveFired = this;'
      ''
      #9'var live = events.live.slice(0);'
      ''
      #9'for ( j = 0; j < live.length; j++ ) {'
      #9#9'handleObj = live[j];'
      ''
      
        #9#9'if ( handleObj.origType.replace( rnamespaces, "" ) === event.t' +
        'ype ) {'
      #9#9#9'selectors.push( handleObj.selector );'
      ''
      #9#9'} else {'
      #9#9#9'live.splice( j--, 1 );'
      #9#9'}'
      #9'}'
      ''
      
        #9'match = jQuery( event.target ).closest( selectors, event.curren' +
        'tTarget );'
      ''
      #9'for ( i = 0, l = match.length; i < l; i++ ) {'
      #9#9'close = match[i];'
      ''
      #9#9'for ( j = 0; j < live.length; j++ ) {'
      #9#9#9'handleObj = live[j];'
      ''
      
        #9#9#9'if ( close.selector === handleObj.selector && (!namespace || ' +
        'namespace.test( handleObj.namespace )) ) {'
      #9#9#9#9'elem = close.elem;'
      #9#9#9#9'related = null;'
      ''
      #9#9#9#9'// Those two events require additional checking'
      
        #9#9#9#9'if ( handleObj.preType === "mouseenter" || handleObj.preType' +
        ' === "mouseleave" ) {'
      #9#9#9#9#9'event.type = handleObj.preType;'
      
        #9#9#9#9#9'related = jQuery( event.relatedTarget ).closest( handleObj.' +
        'selector )[0];'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( !related || related !== elem ) {'
      
        #9#9#9#9#9'elems.push({ elem: elem, handleObj: handleObj, level: close' +
        '.level });'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'for ( i = 0, l = elems.length; i < l; i++ ) {'
      #9#9'match = elems[i];'
      ''
      #9#9'if ( maxLevel && match.level > maxLevel ) {'
      #9#9#9'break;'
      #9#9'}'
      ''
      #9#9'event.currentTarget = match.elem;'
      #9#9'event.data = match.handleObj.data;'
      #9#9'event.handleObj = match.handleObj;'
      ''
      
        #9#9'ret = match.handleObj.origHandler.apply( match.elem, arguments' +
        ' );'
      ''
      #9#9'if ( ret === false || event.isPropagationStopped() ) {'
      #9#9#9'maxLevel = match.level;'
      ''
      #9#9#9'if ( ret === false ) {'
      #9#9#9#9'stop = false;'
      #9#9#9'}'
      #9#9#9'if ( event.isImmediatePropagationStopped() ) {'
      #9#9#9#9'break;'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'return stop;'
      '}'
      ''
      'function liveConvert( type, selector ) {'
      
        #9'return (type && type !== "*" ? type + "." : "") + selector.repl' +
        'ace(rperiod, "`").replace(rspace, "&");'
      '}'
      ''
      
        'jQuery.each( ("blur focus focusin focusout load resize scroll un' +
        'load click dblclick " +'
      
        #9'"mousedown mouseup mousemove mouseover mouseout mouseenter mous' +
        'eleave " +'
      
        #9'"change select submit keydown keypress keyup error").split(" ")' +
        ', function( i, name ) {'
      ''
      #9'// Handle event binding'
      #9'jQuery.fn[ name ] = function( data, fn ) {'
      #9#9'if ( fn == null ) {'
      #9#9#9'fn = data;'
      #9#9#9'data = null;'
      #9#9'}'
      ''
      #9#9'return arguments.length > 0 ?'
      #9#9#9'this.bind( name, data, fn ) :'
      #9#9#9'this.trigger( name );'
      #9'};'
      ''
      #9'if ( jQuery.attrFn ) {'
      #9#9'jQuery.attrFn[ name ] = true;'
      #9'}'
      '});'
      ''
      '// Prevent memory leaks in IE'
      
        '// Window isn'#39't included so as not to unbind existing unload eve' +
        'nts'
      '// More info:'
      '//  - http://isaacschlueter.com/2006/10/msie-memory-leaks/'
      'if ( window.attachEvent && !window.addEventListener ) {'
      #9'jQuery(window).bind("unload", function() {'
      #9#9'for ( var id in jQuery.cache ) {'
      #9#9#9'if ( jQuery.cache[ id ].handle ) {'
      #9#9#9#9'// Try/Catch is to handle iframes being unloaded, see #4280'
      #9#9#9#9'try {'
      #9#9#9#9#9'jQuery.event.remove( jQuery.cache[ id ].handle.elem );'
      #9#9#9#9'} catch(e) {}'
      #9#9#9'}'
      #9#9'}'
      #9'});'
      '}'
      ''
      ''
      '/*!'
      ' * Sizzle CSS Selector Engine - v1.0'
      ' *  Copyright 2009, The Dojo Foundation'
      ' *  Released under the MIT, BSD, and GPL Licenses.'
      ' *  More information: http://sizzlejs.com/'
      ' */'
      '(function(){'
      ''
      
        'var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|' +
        '['#39'"][^'#39'"]*['#39'"]|[^\[\]'#39'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s' +
        '*)?((?:.|\r|\n)*)/g,'
      #9'done = 0,'
      #9'toString = Object.prototype.toString,'
      #9'hasDuplicate = false,'
      #9'baseHasDuplicate = true;'
      ''
      '// Here we check if the JavaScript engine is using some sort of'
      '// optimization where it does not always call our comparision'
      
        '// function. If that is the case, discard the hasDuplicate value' +
        '.'
      '//   Thus far that includes Google Chrome.'
      '[0, 0].sort(function() {'
      #9'baseHasDuplicate = false;'
      #9'return 0;'
      '});'
      ''
      'var Sizzle = function( selector, context, results, seed ) {'
      #9'results = results || [];'
      #9'context = context || document;'
      ''
      #9'var origContext = context;'
      ''
      #9'if ( context.nodeType !== 1 && context.nodeType !== 9 ) {'
      #9#9'return [];'
      #9'}'
      #9
      #9'if ( !selector || typeof selector !== "string" ) {'
      #9#9'return results;'
      #9'}'
      ''
      #9'var m, set, checkSet, extra, ret, cur, pop, i,'
      #9#9'prune = true,'
      #9#9'contextXML = Sizzle.isXML( context ),'
      #9#9'parts = [],'
      #9#9'soFar = selector;'
      #9
      #9'// Reset the position of the chunker regexp (start from head)'
      #9'do {'
      #9#9'chunker.exec( "" );'
      #9#9'm = chunker.exec( soFar );'
      ''
      #9#9'if ( m ) {'
      #9#9#9'soFar = m[3];'
      #9#9
      #9#9#9'parts.push( m[1] );'
      #9#9
      #9#9#9'if ( m[2] ) {'
      #9#9#9#9'extra = m[3];'
      #9#9#9#9'break;'
      #9#9#9'}'
      #9#9'}'
      #9'} while ( m );'
      ''
      #9'if ( parts.length > 1 && origPOS.exec( selector ) ) {'
      ''
      #9#9'if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {'
      #9#9#9'set = posProcess( parts[0] + parts[1], context );'
      ''
      #9#9'} else {'
      #9#9#9'set = Expr.relative[ parts[0] ] ?'
      #9#9#9#9'[ context ] :'
      #9#9#9#9'Sizzle( parts.shift(), context );'
      ''
      #9#9#9'while ( parts.length ) {'
      #9#9#9#9'selector = parts.shift();'
      ''
      #9#9#9#9'if ( Expr.relative[ selector ] ) {'
      #9#9#9#9#9'selector += parts.shift();'
      #9#9#9#9'}'
      #9#9#9#9
      #9#9#9#9'set = posProcess( selector, set );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9'} else {'
      
        #9#9'// Take a shortcut and set the context if the root selector is' +
        ' an ID'
      #9#9'// (but not if it'#39'll be faster if the inner selector is an ID)'
      
        #9#9'if ( !seed && parts.length > 1 && context.nodeType === 9 && !c' +
        'ontextXML &&'
      
        #9#9#9#9'Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[pa' +
        'rts.length - 1]) ) {'
      ''
      #9#9#9'ret = Sizzle.find( parts.shift(), context, contextXML );'
      #9#9#9'context = ret.expr ?'
      #9#9#9#9'Sizzle.filter( ret.expr, ret.set )[0] :'
      #9#9#9#9'ret.set[0];'
      #9#9'}'
      ''
      #9#9'if ( context ) {'
      #9#9#9'ret = seed ?'
      #9#9#9#9'{ expr: parts.pop(), set: makeArray(seed) } :'
      
        #9#9#9#9'Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] ==' +
        '= "~" || parts[0] === "+") && context.parentNode ? context.paren' +
        'tNode : context, contextXML );'
      ''
      #9#9#9'set = ret.expr ?'
      #9#9#9#9'Sizzle.filter( ret.expr, ret.set ) :'
      #9#9#9#9'ret.set;'
      ''
      #9#9#9'if ( parts.length > 0 ) {'
      #9#9#9#9'checkSet = makeArray( set );'
      ''
      #9#9#9'} else {'
      #9#9#9#9'prune = false;'
      #9#9#9'}'
      ''
      #9#9#9'while ( parts.length ) {'
      #9#9#9#9'cur = parts.pop();'
      #9#9#9#9'pop = cur;'
      ''
      #9#9#9#9'if ( !Expr.relative[ cur ] ) {'
      #9#9#9#9#9'cur = "";'
      #9#9#9#9'} else {'
      #9#9#9#9#9'pop = parts.pop();'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( pop == null ) {'
      #9#9#9#9#9'pop = context;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'Expr.relative[ cur ]( checkSet, pop, contextXML );'
      #9#9#9'}'
      ''
      #9#9'} else {'
      #9#9#9'checkSet = parts = [];'
      #9#9'}'
      #9'}'
      ''
      #9'if ( !checkSet ) {'
      #9#9'checkSet = set;'
      #9'}'
      ''
      #9'if ( !checkSet ) {'
      #9#9'Sizzle.error( cur || selector );'
      #9'}'
      ''
      #9'if ( toString.call(checkSet) === "[object Array]" ) {'
      #9#9'if ( !prune ) {'
      #9#9#9'results.push.apply( results, checkSet );'
      ''
      #9#9'} else if ( context && context.nodeType === 1 ) {'
      #9#9#9'for ( i = 0; checkSet[i] != null; i++ ) {'
      
        #9#9#9#9'if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nod' +
        'eType === 1 && Sizzle.contains(context, checkSet[i])) ) {'
      #9#9#9#9#9'results.push( set[i] );'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9'} else {'
      #9#9#9'for ( i = 0; checkSet[i] != null; i++ ) {'
      #9#9#9#9'if ( checkSet[i] && checkSet[i].nodeType === 1 ) {'
      #9#9#9#9#9'results.push( set[i] );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9'} else {'
      #9#9'makeArray( checkSet, results );'
      #9'}'
      ''
      #9'if ( extra ) {'
      #9#9'Sizzle( extra, origContext, results, seed );'
      #9#9'Sizzle.uniqueSort( results );'
      #9'}'
      ''
      #9'return results;'
      '};'
      ''
      'Sizzle.uniqueSort = function( results ) {'
      #9'if ( sortOrder ) {'
      #9#9'hasDuplicate = baseHasDuplicate;'
      #9#9'results.sort( sortOrder );'
      ''
      #9#9'if ( hasDuplicate ) {'
      #9#9#9'for ( var i = 1; i < results.length; i++ ) {'
      #9#9#9#9'if ( results[i] === results[ i - 1 ] ) {'
      #9#9#9#9#9'results.splice( i--, 1 );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'return results;'
      '};'
      ''
      'Sizzle.matches = function( expr, set ) {'
      #9'return Sizzle( expr, null, null, set );'
      '};'
      ''
      'Sizzle.matchesSelector = function( node, expr ) {'
      #9'return Sizzle( expr, null, null, [node] ).length > 0;'
      '};'
      ''
      'Sizzle.find = function( expr, context, isXML ) {'
      #9'var set;'
      ''
      #9'if ( !expr ) {'
      #9#9'return [];'
      #9'}'
      ''
      #9'for ( var i = 0, l = Expr.order.length; i < l; i++ ) {'
      #9#9'var match,'
      #9#9#9'type = Expr.order[i];'
      #9#9
      #9#9'if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {'
      #9#9#9'var left = match[1];'
      #9#9#9'match.splice( 1, 1 );'
      ''
      #9#9#9'if ( left.substr( left.length - 1 ) !== "\\" ) {'
      #9#9#9#9'match[1] = (match[1] || "").replace(/\\/g, "");'
      #9#9#9#9'set = Expr.find[ type ]( match, context, isXML );'
      ''
      #9#9#9#9'if ( set != null ) {'
      #9#9#9#9#9'expr = expr.replace( Expr.match[ type ], "" );'
      #9#9#9#9#9'break;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'if ( !set ) {'
      #9#9'set = context.getElementsByTagName( "*" );'
      #9'}'
      ''
      #9'return { set: set, expr: expr };'
      '};'
      ''
      'Sizzle.filter = function( expr, set, inplace, not ) {'
      #9'var match, anyFound,'
      #9#9'old = expr,'
      #9#9'result = [],'
      #9#9'curLoop = set,'
      #9#9'isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );'
      ''
      #9'while ( expr && set.length ) {'
      #9#9'for ( var type in Expr.filter ) {'
      
        #9#9#9'if ( (match = Expr.leftMatch[ type ].exec( expr )) != null &&' +
        ' match[2] ) {'
      #9#9#9#9'var found, item,'
      #9#9#9#9#9'filter = Expr.filter[ type ],'
      #9#9#9#9#9'left = match[1];'
      ''
      #9#9#9#9'anyFound = false;'
      ''
      #9#9#9#9'match.splice(1,1);'
      ''
      #9#9#9#9'if ( left.substr( left.length - 1 ) === "\\" ) {'
      #9#9#9#9#9'continue;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( curLoop === result ) {'
      #9#9#9#9#9'result = [];'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( Expr.preFilter[ type ] ) {'
      
        #9#9#9#9#9'match = Expr.preFilter[ type ]( match, curLoop, inplace, re' +
        'sult, not, isXMLFilter );'
      ''
      #9#9#9#9#9'if ( !match ) {'
      #9#9#9#9#9#9'anyFound = found = true;'
      ''
      #9#9#9#9#9'} else if ( match === true ) {'
      #9#9#9#9#9#9'continue;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( match ) {'
      #9#9#9#9#9'for ( var i = 0; (item = curLoop[i]) != null; i++ ) {'
      #9#9#9#9#9#9'if ( item ) {'
      #9#9#9#9#9#9#9'found = filter( item, match, i, curLoop );'
      #9#9#9#9#9#9#9'var pass = not ^ !!found;'
      ''
      #9#9#9#9#9#9#9'if ( inplace && found != null ) {'
      #9#9#9#9#9#9#9#9'if ( pass ) {'
      #9#9#9#9#9#9#9#9#9'anyFound = true;'
      ''
      #9#9#9#9#9#9#9#9'} else {'
      #9#9#9#9#9#9#9#9#9'curLoop[i] = false;'
      #9#9#9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9#9#9'} else if ( pass ) {'
      #9#9#9#9#9#9#9#9'result.push( item );'
      #9#9#9#9#9#9#9#9'anyFound = true;'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( found !== undefined ) {'
      #9#9#9#9#9'if ( !inplace ) {'
      #9#9#9#9#9#9'curLoop = result;'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'expr = expr.replace( Expr.match[ type ], "" );'
      ''
      #9#9#9#9#9'if ( !anyFound ) {'
      #9#9#9#9#9#9'return [];'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'break;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'// Improper expression'
      #9#9'if ( expr === old ) {'
      #9#9#9'if ( anyFound == null ) {'
      #9#9#9#9'Sizzle.error( expr );'
      ''
      #9#9#9'} else {'
      #9#9#9#9'break;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'old = expr;'
      #9'}'
      ''
      #9'return curLoop;'
      '};'
      ''
      'Sizzle.error = function( msg ) {'
      #9'throw "Syntax error, unrecognized expression: " + msg;'
      '};'
      ''
      'var Expr = Sizzle.selectors = {'
      #9'order: [ "ID", "NAME", "TAG" ],'
      ''
      #9'match: {'
      #9#9'ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,'
      #9#9'CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,'
      #9#9'NAME: /\[name=['#39'"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['#39'"]*\]/,'
      
        #9#9'ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['#39'"]' +
        '*)(.*?)\3|)\s*\]/,'
      #9#9'TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,'
      
        #9#9'CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\' +
        '))?/,'
      
        #9#9'POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-' +
        ']|$)/,'
      
        #9#9'PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['#39'"]?)((?:\([^\)' +
        ']+\)|[^\(\)]*)+)\2\))?/'
      #9'},'
      ''
      #9'leftMatch: {},'
      ''
      #9'attrMap: {'
      #9#9'"class": "className",'
      #9#9'"for": "htmlFor"'
      #9'},'
      ''
      #9'attrHandle: {'
      #9#9'href: function( elem ) {'
      #9#9#9'return elem.getAttribute( "href" );'
      #9#9'}'
      #9'},'
      ''
      #9'relative: {'
      #9#9'"+": function(checkSet, part){'
      #9#9#9'var isPartStr = typeof part === "string",'
      #9#9#9#9'isTag = isPartStr && !/\W/.test( part ),'
      #9#9#9#9'isPartStrNotTag = isPartStr && !isTag;'
      ''
      #9#9#9'if ( isTag ) {'
      #9#9#9#9'part = part.toLowerCase();'
      #9#9#9'}'
      ''
      #9#9#9'for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {'
      #9#9#9#9'if ( (elem = checkSet[i]) ) {'
      
        #9#9#9#9#9'while ( (elem = elem.previousSibling) && elem.nodeType !== ' +
        '1 ) {}'
      ''
      
        #9#9#9#9#9'checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLo' +
        'werCase() === part ?'
      #9#9#9#9#9#9'elem || false :'
      #9#9#9#9#9#9'elem === part;'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'if ( isPartStrNotTag ) {'
      #9#9#9#9'Sizzle.filter( part, checkSet, true );'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'">": function( checkSet, part ) {'
      #9#9#9'var elem,'
      #9#9#9#9'isPartStr = typeof part === "string",'
      #9#9#9#9'i = 0,'
      #9#9#9#9'l = checkSet.length;'
      ''
      #9#9#9'if ( isPartStr && !/\W/.test( part ) ) {'
      #9#9#9#9'part = part.toLowerCase();'
      ''
      #9#9#9#9'for ( ; i < l; i++ ) {'
      #9#9#9#9#9'elem = checkSet[i];'
      ''
      #9#9#9#9#9'if ( elem ) {'
      #9#9#9#9#9#9'var parent = elem.parentNode;'
      
        #9#9#9#9#9#9'checkSet[i] = parent.nodeName.toLowerCase() === part ? par' +
        'ent : false;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9'} else {'
      #9#9#9#9'for ( ; i < l; i++ ) {'
      #9#9#9#9#9'elem = checkSet[i];'
      ''
      #9#9#9#9#9'if ( elem ) {'
      #9#9#9#9#9#9'checkSet[i] = isPartStr ?'
      #9#9#9#9#9#9#9'elem.parentNode :'
      #9#9#9#9#9#9#9'elem.parentNode === part;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( isPartStr ) {'
      #9#9#9#9#9'Sizzle.filter( part, checkSet, true );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'"": function(checkSet, part, isXML){'
      #9#9#9'var nodeCheck,'
      #9#9#9#9'doneName = done++,'
      #9#9#9#9'checkFn = dirCheck;'
      ''
      #9#9#9'if ( typeof part === "string" && !/\W/.test(part) ) {'
      #9#9#9#9'part = part.toLowerCase();'
      #9#9#9#9'nodeCheck = part;'
      #9#9#9#9'checkFn = dirNodeCheck;'
      #9#9#9'}'
      ''
      
        #9#9#9'checkFn( "parentNode", part, doneName, checkSet, nodeCheck, i' +
        'sXML );'
      #9#9'},'
      ''
      #9#9'"~": function( checkSet, part, isXML ) {'
      #9#9#9'var nodeCheck,'
      #9#9#9#9'doneName = done++,'
      #9#9#9#9'checkFn = dirCheck;'
      ''
      #9#9#9'if ( typeof part === "string" && !/\W/.test( part ) ) {'
      #9#9#9#9'part = part.toLowerCase();'
      #9#9#9#9'nodeCheck = part;'
      #9#9#9#9'checkFn = dirNodeCheck;'
      #9#9#9'}'
      ''
      
        #9#9#9'checkFn( "previousSibling", part, doneName, checkSet, nodeChe' +
        'ck, isXML );'
      #9#9'}'
      #9'},'
      ''
      #9'find: {'
      #9#9'ID: function( match, context, isXML ) {'
      
        #9#9#9'if ( typeof context.getElementById !== "undefined" && !isXML ' +
        ') {'
      #9#9#9#9'var m = context.getElementById(match[1]);'
      #9#9#9#9'// Check parentNode to catch when Blackberry 4.6 returns'
      #9#9#9#9'// nodes that are no longer in the document #6963'
      #9#9#9#9'return m && m.parentNode ? [m] : [];'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'NAME: function( match, context ) {'
      #9#9#9'if ( typeof context.getElementsByName !== "undefined" ) {'
      #9#9#9#9'var ret = [],'
      #9#9#9#9#9'results = context.getElementsByName( match[1] );'
      ''
      #9#9#9#9'for ( var i = 0, l = results.length; i < l; i++ ) {'
      #9#9#9#9#9'if ( results[i].getAttribute("name") === match[1] ) {'
      #9#9#9#9#9#9'ret.push( results[i] );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'return ret.length === 0 ? null : ret;'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'TAG: function( match, context ) {'
      #9#9#9'return context.getElementsByTagName( match[1] );'
      #9#9'}'
      #9'},'
      #9'preFilter: {'
      
        #9#9'CLASS: function( match, curLoop, inplace, result, not, isXML )' +
        ' {'
      #9#9#9'match = " " + match[1].replace(/\\/g, "") + " ";'
      ''
      #9#9#9'if ( isXML ) {'
      #9#9#9#9'return match;'
      #9#9#9'}'
      ''
      #9#9#9'for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {'
      #9#9#9#9'if ( elem ) {'
      
        #9#9#9#9#9'if ( not ^ (elem.className && (" " + elem.className + " ").' +
        'replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) {'
      #9#9#9#9#9#9'if ( !inplace ) {'
      #9#9#9#9#9#9#9'result.push( elem );'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9'} else if ( inplace ) {'
      #9#9#9#9#9#9'curLoop[i] = false;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'return false;'
      #9#9'},'
      ''
      #9#9'ID: function( match ) {'
      #9#9#9'return match[1].replace(/\\/g, "");'
      #9#9'},'
      ''
      #9#9'TAG: function( match, curLoop ) {'
      #9#9#9'return match[1].toLowerCase();'
      #9#9'},'
      ''
      #9#9'CHILD: function( match ) {'
      #9#9#9'if ( match[1] === "nth" ) {'
      
        #9#9#9#9'// parse equations like '#39'even'#39', '#39'odd'#39', '#39'5'#39', '#39'2n'#39', '#39'3n+2'#39', '#39'4' +
        'n-1'#39', '#39'-n+6'#39
      #9#9#9#9'var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec('
      
        #9#9#9#9#9'match[2] === "even" && "2n" || match[2] === "odd" && "2n+1"' +
        ' ||'
      #9#9#9#9#9'!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);'
      ''
      
        #9#9#9#9'// calculate the numbers (first)n+(last) including if they a' +
        're negative'
      #9#9#9#9'match[2] = (test[1] + (test[2] || 1)) - 0;'
      #9#9#9#9'match[3] = test[3] - 0;'
      #9#9#9'}'
      ''
      #9#9#9'// TODO: Move to normal caching system'
      #9#9#9'match[0] = done++;'
      ''
      #9#9#9'return match;'
      #9#9'},'
      ''
      
        #9#9'ATTR: function( match, curLoop, inplace, result, not, isXML ) ' +
        '{'
      #9#9#9'var name = match[1].replace(/\\/g, "");'
      #9#9#9
      #9#9#9'if ( !isXML && Expr.attrMap[name] ) {'
      #9#9#9#9'match[1] = Expr.attrMap[name];'
      #9#9#9'}'
      ''
      #9#9#9'if ( match[2] === "~=" ) {'
      #9#9#9#9'match[4] = " " + match[4] + " ";'
      #9#9#9'}'
      ''
      #9#9#9'return match;'
      #9#9'},'
      ''
      #9#9'PSEUDO: function( match, curLoop, inplace, result, not ) {'
      #9#9#9'if ( match[1] === "not" ) {'
      
        #9#9#9#9'// If we'#39're dealing with a complex expression, or a simple o' +
        'ne'
      
        #9#9#9#9'if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.te' +
        'st(match[3]) ) {'
      #9#9#9#9#9'match[3] = Sizzle(match[3], null, null, curLoop);'
      ''
      #9#9#9#9'} else {'
      
        #9#9#9#9#9'var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ ' +
        'not);'
      ''
      #9#9#9#9#9'if ( !inplace ) {'
      #9#9#9#9#9#9'result.push.apply( result, ret );'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'return false;'
      #9#9#9#9'}'
      ''
      
        #9#9#9'} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHI' +
        'LD.test( match[0] ) ) {'
      #9#9#9#9'return true;'
      #9#9#9'}'
      #9#9#9
      #9#9#9'return match;'
      #9#9'},'
      ''
      #9#9'POS: function( match ) {'
      #9#9#9'match.unshift( true );'
      ''
      #9#9#9'return match;'
      #9#9'}'
      #9'},'
      #9
      #9'filters: {'
      #9#9'enabled: function( elem ) {'
      #9#9#9'return elem.disabled === false && elem.type !== "hidden";'
      #9#9'},'
      ''
      #9#9'disabled: function( elem ) {'
      #9#9#9'return elem.disabled === true;'
      #9#9'},'
      ''
      #9#9'checked: function( elem ) {'
      #9#9#9'return elem.checked === true;'
      #9#9'},'
      #9#9
      #9#9'selected: function( elem ) {'
      #9#9#9'// Accessing this property makes selected-by-default'
      #9#9#9'// options in Safari work properly'
      #9#9#9'elem.parentNode.selectedIndex;'
      #9#9#9
      #9#9#9'return elem.selected === true;'
      #9#9'},'
      ''
      #9#9'parent: function( elem ) {'
      #9#9#9'return !!elem.firstChild;'
      #9#9'},'
      ''
      #9#9'empty: function( elem ) {'
      #9#9#9'return !elem.firstChild;'
      #9#9'},'
      ''
      #9#9'has: function( elem, i, match ) {'
      #9#9#9'return !!Sizzle( match[3], elem ).length;'
      #9#9'},'
      ''
      #9#9'header: function( elem ) {'
      #9#9#9'return (/h\d/i).test( elem.nodeName );'
      #9#9'},'
      ''
      #9#9'text: function( elem ) {'
      #9#9#9'return "text" === elem.type;'
      #9#9'},'
      #9#9'radio: function( elem ) {'
      #9#9#9'return "radio" === elem.type;'
      #9#9'},'
      ''
      #9#9'checkbox: function( elem ) {'
      #9#9#9'return "checkbox" === elem.type;'
      #9#9'},'
      ''
      #9#9'file: function( elem ) {'
      #9#9#9'return "file" === elem.type;'
      #9#9'},'
      #9#9'password: function( elem ) {'
      #9#9#9'return "password" === elem.type;'
      #9#9'},'
      ''
      #9#9'submit: function( elem ) {'
      #9#9#9'return "submit" === elem.type;'
      #9#9'},'
      ''
      #9#9'image: function( elem ) {'
      #9#9#9'return "image" === elem.type;'
      #9#9'},'
      ''
      #9#9'reset: function( elem ) {'
      #9#9#9'return "reset" === elem.type;'
      #9#9'},'
      ''
      #9#9'button: function( elem ) {'
      
        #9#9#9'return "button" === elem.type || elem.nodeName.toLowerCase() ' +
        '=== "button";'
      #9#9'},'
      ''
      #9#9'input: function( elem ) {'
      
        #9#9#9'return (/input|select|textarea|button/i).test( elem.nodeName ' +
        ');'
      #9#9'}'
      #9'},'
      #9'setFilters: {'
      #9#9'first: function( elem, i ) {'
      #9#9#9'return i === 0;'
      #9#9'},'
      ''
      #9#9'last: function( elem, i, match, array ) {'
      #9#9#9'return i === array.length - 1;'
      #9#9'},'
      ''
      #9#9'even: function( elem, i ) {'
      #9#9#9'return i % 2 === 0;'
      #9#9'},'
      ''
      #9#9'odd: function( elem, i ) {'
      #9#9#9'return i % 2 === 1;'
      #9#9'},'
      ''
      #9#9'lt: function( elem, i, match ) {'
      #9#9#9'return i < match[3] - 0;'
      #9#9'},'
      ''
      #9#9'gt: function( elem, i, match ) {'
      #9#9#9'return i > match[3] - 0;'
      #9#9'},'
      ''
      #9#9'nth: function( elem, i, match ) {'
      #9#9#9'return match[3] - 0 === i;'
      #9#9'},'
      ''
      #9#9'eq: function( elem, i, match ) {'
      #9#9#9'return match[3] - 0 === i;'
      #9#9'}'
      #9'},'
      #9'filter: {'
      #9#9'PSEUDO: function( elem, match, i, array ) {'
      #9#9#9'var name = match[1],'
      #9#9#9#9'filter = Expr.filters[ name ];'
      ''
      #9#9#9'if ( filter ) {'
      #9#9#9#9'return filter( elem, i, match, array );'
      ''
      #9#9#9'} else if ( name === "contains" ) {'
      
        #9#9#9#9'return (elem.textContent || elem.innerText || Sizzle.getText' +
        '([ elem ]) || "").indexOf(match[3]) >= 0;'
      ''
      #9#9#9'} else if ( name === "not" ) {'
      #9#9#9#9'var not = match[3];'
      ''
      #9#9#9#9'for ( var j = 0, l = not.length; j < l; j++ ) {'
      #9#9#9#9#9'if ( not[j] === elem ) {'
      #9#9#9#9#9#9'return false;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'return true;'
      ''
      #9#9#9'} else {'
      
        #9#9#9#9'Sizzle.error( "Syntax error, unrecognized expression: " + na' +
        'me );'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'CHILD: function( elem, match ) {'
      #9#9#9'var type = match[1],'
      #9#9#9#9'node = elem;'
      ''
      #9#9#9'switch ( type ) {'
      #9#9#9#9'case "only":'
      #9#9#9#9'case "first":'
      #9#9#9#9#9'while ( (node = node.previousSibling) )'#9' {'
      #9#9#9#9#9#9'if ( node.nodeType === 1 ) { '
      #9#9#9#9#9#9#9'return false; '
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'if ( type === "first" ) { '
      #9#9#9#9#9#9'return true; '
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'node = elem;'
      ''
      #9#9#9#9'case "last":'
      #9#9#9#9#9'while ( (node = node.nextSibling) )'#9' {'
      #9#9#9#9#9#9'if ( node.nodeType === 1 ) { '
      #9#9#9#9#9#9#9'return false; '
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'return true;'
      ''
      #9#9#9#9'case "nth":'
      #9#9#9#9#9'var first = match[2],'
      #9#9#9#9#9#9'last = match[3];'
      ''
      #9#9#9#9#9'if ( first === 1 && last === 0 ) {'
      #9#9#9#9#9#9'return true;'
      #9#9#9#9#9'}'
      #9#9#9#9#9
      #9#9#9#9#9'var doneName = match[0],'
      #9#9#9#9#9#9'parent = elem.parentNode;'
      #9
      
        #9#9#9#9#9'if ( parent && (parent.sizcache !== doneName || !elem.nodeI' +
        'ndex) ) {'
      #9#9#9#9#9#9'var count = 0;'
      #9#9#9#9#9#9
      
        #9#9#9#9#9#9'for ( node = parent.firstChild; node; node = node.nextSibl' +
        'ing ) {'
      #9#9#9#9#9#9#9'if ( node.nodeType === 1 ) {'
      #9#9#9#9#9#9#9#9'node.nodeIndex = ++count;'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9'} '
      ''
      #9#9#9#9#9#9'parent.sizcache = doneName;'
      #9#9#9#9#9'}'
      #9#9#9#9#9
      #9#9#9#9#9'var diff = elem.nodeIndex - last;'
      ''
      #9#9#9#9#9'if ( first === 0 ) {'
      #9#9#9#9#9#9'return diff === 0;'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'return ( diff % first === 0 && diff / first >= 0 );'
      #9#9#9#9#9'}'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'ID: function( elem, match ) {'
      
        #9#9#9'return elem.nodeType === 1 && elem.getAttribute("id") === mat' +
        'ch;'
      #9#9'},'
      ''
      #9#9'TAG: function( elem, match ) {'
      
        #9#9#9'return (match === "*" && elem.nodeType === 1) || elem.nodeNam' +
        'e.toLowerCase() === match;'
      #9#9'},'
      #9#9
      #9#9'CLASS: function( elem, match ) {'
      
        #9#9#9'return (" " + (elem.className || elem.getAttribute("class")) ' +
        '+ " ")'
      #9#9#9#9'.indexOf( match ) > -1;'
      #9#9'},'
      ''
      #9#9'ATTR: function( elem, match ) {'
      #9#9#9'var name = match[1],'
      #9#9#9#9'result = Expr.attrHandle[ name ] ?'
      #9#9#9#9#9'Expr.attrHandle[ name ]( elem ) :'
      #9#9#9#9#9'elem[ name ] != null ?'
      #9#9#9#9#9#9'elem[ name ] :'
      #9#9#9#9#9#9'elem.getAttribute( name ),'
      #9#9#9#9'value = result + "",'
      #9#9#9#9'type = match[2],'
      #9#9#9#9'check = match[4];'
      ''
      #9#9#9'return result == null ?'
      #9#9#9#9'type === "!=" :'
      #9#9#9#9'type === "=" ?'
      #9#9#9#9'value === check :'
      #9#9#9#9'type === "*=" ?'
      #9#9#9#9'value.indexOf(check) >= 0 :'
      #9#9#9#9'type === "~=" ?'
      #9#9#9#9'(" " + value + " ").indexOf(check) >= 0 :'
      #9#9#9#9'!check ?'
      #9#9#9#9'value && result !== false :'
      #9#9#9#9'type === "!=" ?'
      #9#9#9#9'value !== check :'
      #9#9#9#9'type === "^=" ?'
      #9#9#9#9'value.indexOf(check) === 0 :'
      #9#9#9#9'type === "$=" ?'
      #9#9#9#9'value.substr(value.length - check.length) === check :'
      #9#9#9#9'type === "|=" ?'
      
        #9#9#9#9'value === check || value.substr(0, check.length + 1) === che' +
        'ck + "-" :'
      #9#9#9#9'false;'
      #9#9'},'
      ''
      #9#9'POS: function( elem, match, i, array ) {'
      #9#9#9'var name = match[2],'
      #9#9#9#9'filter = Expr.setFilters[ name ];'
      ''
      #9#9#9'if ( filter ) {'
      #9#9#9#9'return filter( elem, i, match, array );'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      '};'
      ''
      'var origPOS = Expr.match.POS,'
      #9'fescape = function(all, num){'
      #9#9'return "\\" + (num - 0 + 1);'
      #9'};'
      ''
      'for ( var type in Expr.match ) {'
      
        #9'Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/' +
        '(?![^\[]*\])(?![^\(]*\))/.source) );'
      
        #9'Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source ' +
        '+ Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );'
      '}'
      ''
      'var makeArray = function( array, results ) {'
      #9'array = Array.prototype.slice.call( array, 0 );'
      ''
      #9'if ( results ) {'
      #9#9'results.push.apply( results, array );'
      #9#9'return results;'
      #9'}'
      #9
      #9'return array;'
      '};'
      ''
      
        '// Perform a simple check to determine if the browser is capable' +
        ' of'
      '// converting a NodeList to an array using builtin methods.'
      '// Also verifies that the returned array holds DOM nodes'
      '// (which is not the case in the Blackberry browser)'
      'try {'
      
        #9'Array.prototype.slice.call( document.documentElement.childNodes' +
        ', 0 )[0].nodeType;'
      ''
      '// Provide a fallback method if it does not work'
      '} catch( e ) {'
      #9'makeArray = function( array, results ) {'
      #9#9'var i = 0,'
      #9#9#9'ret = results || [];'
      ''
      #9#9'if ( toString.call(array) === "[object Array]" ) {'
      #9#9#9'Array.prototype.push.apply( ret, array );'
      ''
      #9#9'} else {'
      #9#9#9'if ( typeof array.length === "number" ) {'
      #9#9#9#9'for ( var l = array.length; i < l; i++ ) {'
      #9#9#9#9#9'ret.push( array[i] );'
      #9#9#9#9'}'
      ''
      #9#9#9'} else {'
      #9#9#9#9'for ( ; array[i]; i++ ) {'
      #9#9#9#9#9'ret.push( array[i] );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'};'
      '}'
      ''
      'var sortOrder, siblingCheck;'
      ''
      'if ( document.documentElement.compareDocumentPosition ) {'
      #9'sortOrder = function( a, b ) {'
      #9#9'if ( a === b ) {'
      #9#9#9'hasDuplicate = true;'
      #9#9#9'return 0;'
      #9#9'}'
      ''
      
        #9#9'if ( !a.compareDocumentPosition || !b.compareDocumentPosition ' +
        ') {'
      #9#9#9'return a.compareDocumentPosition ? -1 : 1;'
      #9#9'}'
      ''
      #9#9'return a.compareDocumentPosition(b) & 4 ? -1 : 1;'
      #9'};'
      ''
      '} else {'
      #9'sortOrder = function( a, b ) {'
      #9#9'var al, bl,'
      #9#9#9'ap = [],'
      #9#9#9'bp = [],'
      #9#9#9'aup = a.parentNode,'
      #9#9#9'bup = b.parentNode,'
      #9#9#9'cur = aup;'
      ''
      #9#9'// The nodes are identical, we can exit early'
      #9#9'if ( a === b ) {'
      #9#9#9'hasDuplicate = true;'
      #9#9#9'return 0;'
      ''
      
        #9#9'// If the nodes are siblings (or identical) we can do a quick ' +
        'check'
      #9#9'} else if ( aup === bup ) {'
      #9#9#9'return siblingCheck( a, b );'
      ''
      #9#9'// If no parents were found then the nodes are disconnected'
      #9#9'} else if ( !aup ) {'
      #9#9#9'return -1;'
      ''
      #9#9'} else if ( !bup ) {'
      #9#9#9'return 1;'
      #9#9'}'
      ''
      #9#9'// Otherwise they'#39're somewhere else in the tree so we need'
      #9#9'// to build up a full list of the parentNodes for comparison'
      #9#9'while ( cur ) {'
      #9#9#9'ap.unshift( cur );'
      #9#9#9'cur = cur.parentNode;'
      #9#9'}'
      ''
      #9#9'cur = bup;'
      ''
      #9#9'while ( cur ) {'
      #9#9#9'bp.unshift( cur );'
      #9#9#9'cur = cur.parentNode;'
      #9#9'}'
      ''
      #9#9'al = ap.length;'
      #9#9'bl = bp.length;'
      ''
      #9#9'// Start walking down the tree looking for a discrepancy'
      #9#9'for ( var i = 0; i < al && i < bl; i++ ) {'
      #9#9#9'if ( ap[i] !== bp[i] ) {'
      #9#9#9#9'return siblingCheck( ap[i], bp[i] );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'// We ended someplace up the tree so do a sibling check'
      #9#9'return i === al ?'
      #9#9#9'siblingCheck( a, bp[i], -1 ) :'
      #9#9#9'siblingCheck( ap[i], b, 1 );'
      #9'};'
      ''
      #9'siblingCheck = function( a, b, ret ) {'
      #9#9'if ( a === b ) {'
      #9#9#9'return ret;'
      #9#9'}'
      ''
      #9#9'var cur = a.nextSibling;'
      ''
      #9#9'while ( cur ) {'
      #9#9#9'if ( cur === b ) {'
      #9#9#9#9'return -1;'
      #9#9#9'}'
      ''
      #9#9#9'cur = cur.nextSibling;'
      #9#9'}'
      ''
      #9#9'return 1;'
      #9'};'
      '}'
      ''
      
        '// Utility function for retreiving the text value of an array of' +
        ' DOM nodes'
      'Sizzle.getText = function( elems ) {'
      #9'var ret = "", elem;'
      ''
      #9'for ( var i = 0; elems[i]; i++ ) {'
      #9#9'elem = elems[i];'
      ''
      #9#9'// Get the text from text nodes and CDATA nodes'
      #9#9'if ( elem.nodeType === 3 || elem.nodeType === 4 ) {'
      #9#9#9'ret += elem.nodeValue;'
      ''
      #9#9'// Traverse everything else, except comment nodes'
      #9#9'} else if ( elem.nodeType !== 8 ) {'
      #9#9#9'ret += Sizzle.getText( elem.childNodes );'
      #9#9'}'
      #9'}'
      ''
      #9'return ret;'
      '};'
      ''
      '// Check to see if the browser returns elements by name when'
      '// querying by getElementById (and provide a workaround)'
      '(function(){'
      
        #9'// We'#39're going to inject a fake input element with a specified ' +
        'name'
      #9'var form = document.createElement("div"),'
      #9#9'id = "script" + (new Date()).getTime(),'
      #9#9'root = document.documentElement;'
      ''
      #9'form.innerHTML = "<a name='#39'" + id + "'#39'/>";'
      ''
      
        #9'// Inject it into the root element, check its status, and remov' +
        'e it quickly'
      #9'root.insertBefore( form, root.firstChild );'
      ''
      
        #9'// The workaround has to do additional checks after a getElemen' +
        'tById'
      
        #9'// Which slows things down for other browsers (hence the branch' +
        'ing)'
      #9'if ( document.getElementById( id ) ) {'
      #9#9'Expr.find.ID = function( match, context, isXML ) {'
      
        #9#9#9'if ( typeof context.getElementById !== "undefined" && !isXML ' +
        ') {'
      #9#9#9#9'var m = context.getElementById(match[1]);'
      ''
      #9#9#9#9'return m ?'
      
        #9#9#9#9#9'm.id === match[1] || typeof m.getAttributeNode !== "undefin' +
        'ed" && m.getAttributeNode("id").nodeValue === match[1] ?'
      #9#9#9#9#9#9'[m] :'
      #9#9#9#9#9#9'undefined :'
      #9#9#9#9#9'[];'
      #9#9#9'}'
      #9#9'};'
      ''
      #9#9'Expr.filter.ID = function( elem, match ) {'
      
        #9#9#9'var node = typeof elem.getAttributeNode !== "undefined" && el' +
        'em.getAttributeNode("id");'
      ''
      
        #9#9#9'return elem.nodeType === 1 && node && node.nodeValue === matc' +
        'h;'
      #9#9'};'
      #9'}'
      ''
      #9'root.removeChild( form );'
      ''
      #9'// release memory in IE'
      #9'root = form = null;'
      '})();'
      ''
      '(function(){'
      #9'// Check to see if the browser returns only elements'
      #9'// when doing getElementsByTagName("*")'
      ''
      #9'// Create a fake element'
      #9'var div = document.createElement("div");'
      #9'div.appendChild( document.createComment("") );'
      ''
      #9'// Make sure no comments are found'
      #9'if ( div.getElementsByTagName("*").length > 0 ) {'
      #9#9'Expr.find.TAG = function( match, context ) {'
      #9#9#9'var results = context.getElementsByTagName( match[1] );'
      ''
      #9#9#9'// Filter out possible comments'
      #9#9#9'if ( match[1] === "*" ) {'
      #9#9#9#9'var tmp = [];'
      ''
      #9#9#9#9'for ( var i = 0; results[i]; i++ ) {'
      #9#9#9#9#9'if ( results[i].nodeType === 1 ) {'
      #9#9#9#9#9#9'tmp.push( results[i] );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'results = tmp;'
      #9#9#9'}'
      ''
      #9#9#9'return results;'
      #9#9'};'
      #9'}'
      ''
      
        #9'// Check to see if an attribute returns normalized href attribu' +
        'tes'
      #9'div.innerHTML = "<a href='#39'#'#39'></a>";'
      ''
      
        #9'if ( div.firstChild && typeof div.firstChild.getAttribute !== "' +
        'undefined" &&'
      #9#9#9'div.firstChild.getAttribute("href") !== "#" ) {'
      ''
      #9#9'Expr.attrHandle.href = function( elem ) {'
      #9#9#9'return elem.getAttribute( "href", 2 );'
      #9#9'};'
      #9'}'
      ''
      #9'// release memory in IE'
      #9'div = null;'
      '})();'
      ''
      'if ( document.querySelectorAll ) {'
      #9'(function(){'
      #9#9'var oldSizzle = Sizzle,'
      #9#9#9'div = document.createElement("div"),'
      #9#9#9'id = "__sizzle__";'
      ''
      #9#9'div.innerHTML = "<p class='#39'TEST'#39'></p>";'
      ''
      #9#9'// Safari can'#39't handle uppercase or unicode characters when'
      #9#9'// in quirks mode.'
      
        #9#9'if ( div.querySelectorAll && div.querySelectorAll(".TEST").len' +
        'gth === 0 ) {'
      #9#9#9'return;'
      #9#9'}'
      #9
      #9#9'Sizzle = function( query, context, extra, seed ) {'
      #9#9#9'context = context || document;'
      ''
      #9#9#9'// Make sure that attribute selectors are quoted'
      #9#9#9'query = query.replace(/\=\s*([^'#39'"\]]*)\s*\]/g, "='#39'$1'#39']");'
      ''
      #9#9#9'// Only use querySelectorAll on non-XML documents'
      #9#9#9'// (ID selectors don'#39't work in non-HTML documents)'
      #9#9#9'if ( !seed && !Sizzle.isXML(context) ) {'
      #9#9#9#9'if ( context.nodeType === 9 ) {'
      #9#9#9#9#9'try {'
      
        #9#9#9#9#9#9'return makeArray( context.querySelectorAll(query), extra )' +
        ';'
      #9#9#9#9#9'} catch(qsaError) {}'
      ''
      #9#9#9#9'// qSA works strangely on Element-rooted queries'
      
        #9#9#9#9'// We can work around this by specifying an extra ID on the ' +
        'root'
      
        #9#9#9#9'// and working up from there (Thanks to Andrew Dupont for th' +
        'e technique)'
      #9#9#9#9'// IE 8 doesn'#39't work on object elements'
      
        #9#9#9#9'} else if ( context.nodeType === 1 && context.nodeName.toLow' +
        'erCase() !== "object" ) {'
      #9#9#9#9#9'var old = context.getAttribute( "id" ),'
      #9#9#9#9#9#9'nid = old || id;'
      ''
      #9#9#9#9#9'if ( !old ) {'
      #9#9#9#9#9#9'context.setAttribute( "id", nid );'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'try {'
      
        #9#9#9#9#9#9'return makeArray( context.querySelectorAll( "#" + nid + " ' +
        '" + query ), extra );'
      ''
      #9#9#9#9#9'} catch(pseudoError) {'
      #9#9#9#9#9'} finally {'
      #9#9#9#9#9#9'if ( !old ) {'
      #9#9#9#9#9#9#9'context.removeAttribute( "id" );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9
      #9#9#9'return oldSizzle(query, context, extra, seed);'
      #9#9'};'
      ''
      #9#9'for ( var prop in oldSizzle ) {'
      #9#9#9'Sizzle[ prop ] = oldSizzle[ prop ];'
      #9#9'}'
      ''
      #9#9'// release memory in IE'
      #9#9'div = null;'
      #9'})();'
      '}'
      ''
      '(function(){'
      #9'var html = document.documentElement,'
      
        #9#9'matches = html.matchesSelector || html.mozMatchesSelector || h' +
        'tml.webkitMatchesSelector || html.msMatchesSelector,'
      #9#9'pseudoWorks = false;'
      ''
      #9'try {'
      #9#9'// This should fail with an exception'
      #9#9'// Gecko does not error, returns false instead'
      #9#9'matches.call( document.documentElement, "[test!='#39#39']:sizzle" );'
      #9
      #9'} catch( pseudoError ) {'
      #9#9'pseudoWorks = true;'
      #9'}'
      ''
      #9'if ( matches ) {'
      #9#9'Sizzle.matchesSelector = function( node, expr ) {'
      #9#9#9'// Make sure that attribute selectors are quoted'
      #9#9#9'expr = expr.replace(/\=\s*([^'#39'"\]]*)\s*\]/g, "='#39'$1'#39']");'
      ''
      #9#9#9'if ( !Sizzle.isXML( node ) ) {'
      #9#9#9#9'try { '
      
        #9#9#9#9#9'if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=' +
        '/.test( expr ) ) {'
      #9#9#9#9#9#9'return matches.call( node, expr );'
      #9#9#9#9#9'}'
      #9#9#9#9'} catch(e) {}'
      #9#9#9'}'
      ''
      #9#9#9'return Sizzle(expr, null, null, [node]).length > 0;'
      #9#9'};'
      #9'}'
      '})();'
      ''
      '(function(){'
      #9'var div = document.createElement("div");'
      ''
      
        #9'div.innerHTML = "<div class='#39'test e'#39'></div><div class='#39'test'#39'></' +
        'div>";'
      ''
      #9'// Opera can'#39't find a second classname (in 9.6)'
      #9'// Also, make sure that getElementsByClassName actually exists'
      
        #9'if ( !div.getElementsByClassName || div.getElementsByClassName(' +
        '"e").length === 0 ) {'
      #9#9'return;'
      #9'}'
      ''
      
        #9'// Safari caches class attributes, doesn'#39't catch changes (in 3.' +
        '2)'
      #9'div.lastChild.className = "e";'
      ''
      #9'if ( div.getElementsByClassName("e").length === 1 ) {'
      #9#9'return;'
      #9'}'
      #9
      #9'Expr.order.splice(1, 0, "CLASS");'
      #9'Expr.find.CLASS = function( match, context, isXML ) {'
      
        #9#9'if ( typeof context.getElementsByClassName !== "undefined" && ' +
        '!isXML ) {'
      #9#9#9'return context.getElementsByClassName(match[1]);'
      #9#9'}'
      #9'};'
      ''
      #9'// release memory in IE'
      #9'div = null;'
      '})();'
      ''
      
        'function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, ' +
        'isXML ) {'
      #9'for ( var i = 0, l = checkSet.length; i < l; i++ ) {'
      #9#9'var elem = checkSet[i];'
      ''
      #9#9'if ( elem ) {'
      #9#9#9'var match = false;'
      ''
      #9#9#9'elem = elem[dir];'
      ''
      #9#9#9'while ( elem ) {'
      #9#9#9#9'if ( elem.sizcache === doneName ) {'
      #9#9#9#9#9'match = checkSet[elem.sizset];'
      #9#9#9#9#9'break;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( elem.nodeType === 1 && !isXML ){'
      #9#9#9#9#9'elem.sizcache = doneName;'
      #9#9#9#9#9'elem.sizset = i;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( elem.nodeName.toLowerCase() === cur ) {'
      #9#9#9#9#9'match = elem;'
      #9#9#9#9#9'break;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'elem = elem[dir];'
      #9#9#9'}'
      ''
      #9#9#9'checkSet[i] = match;'
      #9#9'}'
      #9'}'
      '}'
      ''
      
        'function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXM' +
        'L ) {'
      #9'for ( var i = 0, l = checkSet.length; i < l; i++ ) {'
      #9#9'var elem = checkSet[i];'
      ''
      #9#9'if ( elem ) {'
      #9#9#9'var match = false;'
      #9#9#9
      #9#9#9'elem = elem[dir];'
      ''
      #9#9#9'while ( elem ) {'
      #9#9#9#9'if ( elem.sizcache === doneName ) {'
      #9#9#9#9#9'match = checkSet[elem.sizset];'
      #9#9#9#9#9'break;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( elem.nodeType === 1 ) {'
      #9#9#9#9#9'if ( !isXML ) {'
      #9#9#9#9#9#9'elem.sizcache = doneName;'
      #9#9#9#9#9#9'elem.sizset = i;'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'if ( typeof cur !== "string" ) {'
      #9#9#9#9#9#9'if ( elem === cur ) {'
      #9#9#9#9#9#9#9'match = true;'
      #9#9#9#9#9#9#9'break;'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9'} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {'
      #9#9#9#9#9#9'match = elem;'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'elem = elem[dir];'
      #9#9#9'}'
      ''
      #9#9#9'checkSet[i] = match;'
      #9#9'}'
      #9'}'
      '}'
      ''
      'if ( document.documentElement.contains ) {'
      #9'Sizzle.contains = function( a, b ) {'
      #9#9'return a !== b && (a.contains ? a.contains(b) : true);'
      #9'};'
      ''
      '} else if ( document.documentElement.compareDocumentPosition ) {'
      #9'Sizzle.contains = function( a, b ) {'
      #9#9'return !!(a.compareDocumentPosition(b) & 16);'
      #9'};'
      ''
      '} else {'
      #9'Sizzle.contains = function() {'
      #9#9'return false;'
      #9'};'
      '}'
      ''
      'Sizzle.isXML = function( elem ) {'
      
        #9'// documentElement is verified for cases where it doesn'#39't yet e' +
        'xist'
      #9'// (such as loading iframes in IE - #4833) '
      
        #9'var documentElement = (elem ? elem.ownerDocument || elem : 0).d' +
        'ocumentElement;'
      ''
      
        #9'return documentElement ? documentElement.nodeName !== "HTML" : ' +
        'false;'
      '};'
      ''
      'var posProcess = function( selector, context ) {'
      #9'var match,'
      #9#9'tmpSet = [],'
      #9#9'later = "",'
      #9#9'root = context.nodeType ? [context] : context;'
      ''
      #9'// Position selectors must be done after the filter'
      
        #9'// And so must :not(positional) so we move all PSEUDOs to the e' +
        'nd'
      #9'while ( (match = Expr.match.PSEUDO.exec( selector )) ) {'
      #9#9'later += match[0];'
      #9#9'selector = selector.replace( Expr.match.PSEUDO, "" );'
      #9'}'
      ''
      #9'selector = Expr.relative[selector] ? selector + "*" : selector;'
      ''
      #9'for ( var i = 0, l = root.length; i < l; i++ ) {'
      #9#9'Sizzle( selector, root[i], tmpSet );'
      #9'}'
      ''
      #9'return Sizzle.filter( later, tmpSet );'
      '};'
      ''
      '// EXPOSE'
      'jQuery.find = Sizzle;'
      'jQuery.expr = Sizzle.selectors;'
      'jQuery.expr[":"] = jQuery.expr.filters;'
      'jQuery.unique = Sizzle.uniqueSort;'
      'jQuery.text = Sizzle.getText;'
      'jQuery.isXMLDoc = Sizzle.isXML;'
      'jQuery.contains = Sizzle.contains;'
      ''
      ''
      '})();'
      ''
      ''
      'var runtil = /Until$/,'
      #9'rparentsprev = /^(?:parents|prevUntil|prevAll)/,'
      
        #9'// Note: This RegExp should be improved, or likely pulled from ' +
        'Sizzle'
      #9'rmultiselector = /,/,'
      #9'isSimple = /^.[^:#\[\.,]*$/,'
      #9'slice = Array.prototype.slice,'
      #9'POS = jQuery.expr.match.POS;'
      ''
      'jQuery.fn.extend({'
      #9'find: function( selector ) {'
      #9#9'var ret = this.pushStack( "", "find", selector ),'
      #9#9#9'length = 0;'
      ''
      #9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9'length = ret.length;'
      #9#9#9'jQuery.find( selector, this[i], ret );'
      ''
      #9#9#9'if ( i > 0 ) {'
      #9#9#9#9'// Make sure that the results are unique'
      #9#9#9#9'for ( var n = length; n < ret.length; n++ ) {'
      #9#9#9#9#9'for ( var r = 0; r < length; r++ ) {'
      #9#9#9#9#9#9'if ( ret[r] === ret[n] ) {'
      #9#9#9#9#9#9#9'ret.splice(n--, 1);'
      #9#9#9#9#9#9#9'break;'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'},'
      ''
      #9'has: function( target ) {'
      #9#9'var targets = jQuery( target );'
      #9#9'return this.filter(function() {'
      #9#9#9'for ( var i = 0, l = targets.length; i < l; i++ ) {'
      #9#9#9#9'if ( jQuery.contains( this, targets[i] ) ) {'
      #9#9#9#9#9'return true;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'not: function( selector ) {'
      
        #9#9'return this.pushStack( winnow(this, selector, false), "not", s' +
        'elector);'
      #9'},'
      ''
      #9'filter: function( selector ) {'
      
        #9#9'return this.pushStack( winnow(this, selector, true), "filter",' +
        ' selector );'
      #9'},'
      #9
      #9'is: function( selector ) {'
      
        #9#9'return !!selector && jQuery.filter( selector, this ).length > ' +
        '0;'
      #9'},'
      ''
      #9'closest: function( selectors, context ) {'
      #9#9'var ret = [], i, l, cur = this[0];'
      ''
      #9#9'if ( jQuery.isArray( selectors ) ) {'
      #9#9#9'var match, selector,'
      #9#9#9#9'matches = {},'
      #9#9#9#9'level = 1;'
      ''
      #9#9#9'if ( cur && selectors.length ) {'
      #9#9#9#9'for ( i = 0, l = selectors.length; i < l; i++ ) {'
      #9#9#9#9#9'selector = selectors[i];'
      ''
      #9#9#9#9#9'if ( !matches[selector] ) {'
      
        #9#9#9#9#9#9'matches[selector] = jQuery.expr.match.POS.test( selector )' +
        ' ? '
      #9#9#9#9#9#9#9'jQuery( selector, context || this.context ) :'
      #9#9#9#9#9#9#9'selector;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'while ( cur && cur.ownerDocument && cur !== context ) {'
      #9#9#9#9#9'for ( selector in matches ) {'
      #9#9#9#9#9#9'match = matches[selector];'
      ''
      
        #9#9#9#9#9#9'if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is' +
        '(match) ) {'
      
        #9#9#9#9#9#9#9'ret.push({ selector: selector, elem: cur, level: level })' +
        ';'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'cur = cur.parentNode;'
      #9#9#9#9#9'level++;'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'return ret;'
      #9#9'}'
      ''
      #9#9'var pos = POS.test( selectors ) ? '
      #9#9#9'jQuery( selectors, context || this.context ) : null;'
      ''
      #9#9'for ( i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9'cur = this[i];'
      ''
      #9#9#9'while ( cur ) {'
      
        #9#9#9#9'if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector' +
        '(cur, selectors) ) {'
      #9#9#9#9#9'ret.push( cur );'
      #9#9#9#9#9'break;'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'cur = cur.parentNode;'
      #9#9#9#9#9'if ( !cur || !cur.ownerDocument || cur === context ) {'
      #9#9#9#9#9#9'break;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'ret = ret.length > 1 ? jQuery.unique(ret) : ret;'
      #9#9
      #9#9'return this.pushStack( ret, "closest", selectors );'
      #9'},'
      #9
      #9'// Determine the position of an element within'
      #9'// the matched set of elements'
      #9'index: function( elem ) {'
      #9#9'if ( !elem || typeof elem === "string" ) {'
      #9#9#9'return jQuery.inArray( this[0],'
      #9#9#9#9'// If it receives a string, the selector is used'
      #9#9#9#9'// If it receives nothing, the siblings are used'
      #9#9#9#9'elem ? jQuery( elem ) : this.parent().children() );'
      #9#9'}'
      #9#9'// Locate the position of the desired element'
      #9#9'return jQuery.inArray('
      #9#9#9'// If it receives a jQuery object, the first element is used'
      #9#9#9'elem.jquery ? elem[0] : elem, this );'
      #9'},'
      ''
      #9'add: function( selector, context ) {'
      #9#9'var set = typeof selector === "string" ?'
      #9#9#9#9'jQuery( selector, context || this.context ) :'
      #9#9#9#9'jQuery.makeArray( selector ),'
      #9#9#9'all = jQuery.merge( this.get(), set );'
      ''
      
        #9#9'return this.pushStack( isDisconnected( set[0] ) || isDisconnec' +
        'ted( all[0] ) ?'
      #9#9#9'all :'
      #9#9#9'jQuery.unique( all ) );'
      #9'},'
      ''
      #9'andSelf: function() {'
      #9#9'return this.add( this.prevObject );'
      #9'}'
      '});'
      ''
      '// A painfully simple check to see if an element is disconnected'
      '// from a document (should be improved, where feasible).'
      'function isDisconnected( node ) {'
      
        #9'return !node || !node.parentNode || node.parentNode.nodeType ==' +
        '= 11;'
      '}'
      ''
      'jQuery.each({'
      #9'parent: function( elem ) {'
      #9#9'var parent = elem.parentNode;'
      #9#9'return parent && parent.nodeType !== 11 ? parent : null;'
      #9'},'
      #9'parents: function( elem ) {'
      #9#9'return jQuery.dir( elem, "parentNode" );'
      #9'},'
      #9'parentsUntil: function( elem, i, until ) {'
      #9#9'return jQuery.dir( elem, "parentNode", until );'
      #9'},'
      #9'next: function( elem ) {'
      #9#9'return jQuery.nth( elem, 2, "nextSibling" );'
      #9'},'
      #9'prev: function( elem ) {'
      #9#9'return jQuery.nth( elem, 2, "previousSibling" );'
      #9'},'
      #9'nextAll: function( elem ) {'
      #9#9'return jQuery.dir( elem, "nextSibling" );'
      #9'},'
      #9'prevAll: function( elem ) {'
      #9#9'return jQuery.dir( elem, "previousSibling" );'
      #9'},'
      #9'nextUntil: function( elem, i, until ) {'
      #9#9'return jQuery.dir( elem, "nextSibling", until );'
      #9'},'
      #9'prevUntil: function( elem, i, until ) {'
      #9#9'return jQuery.dir( elem, "previousSibling", until );'
      #9'},'
      #9'siblings: function( elem ) {'
      #9#9'return jQuery.sibling( elem.parentNode.firstChild, elem );'
      #9'},'
      #9'children: function( elem ) {'
      #9#9'return jQuery.sibling( elem.firstChild );'
      #9'},'
      #9'contents: function( elem ) {'
      #9#9'return jQuery.nodeName( elem, "iframe" ) ?'
      #9#9#9'elem.contentDocument || elem.contentWindow.document :'
      #9#9#9'jQuery.makeArray( elem.childNodes );'
      #9'}'
      '}, function( name, fn ) {'
      #9'jQuery.fn[ name ] = function( until, selector ) {'
      #9#9'var ret = jQuery.map( this, fn, until );'
      #9#9
      #9#9'if ( !runtil.test( name ) ) {'
      #9#9#9'selector = until;'
      #9#9'}'
      ''
      #9#9'if ( selector && typeof selector === "string" ) {'
      #9#9#9'ret = jQuery.filter( selector, ret );'
      #9#9'}'
      ''
      #9#9'ret = this.length > 1 ? jQuery.unique( ret ) : ret;'
      ''
      
        #9#9'if ( (this.length > 1 || rmultiselector.test( selector )) && r' +
        'parentsprev.test( name ) ) {'
      #9#9#9'ret = ret.reverse();'
      #9#9'}'
      ''
      
        #9#9'return this.pushStack( ret, name, slice.call(arguments).join("' +
        ',") );'
      #9'};'
      '});'
      ''
      'jQuery.extend({'
      #9'filter: function( expr, elems, not ) {'
      #9#9'if ( not ) {'
      #9#9#9'expr = ":not(" + expr + ")";'
      #9#9'}'
      ''
      #9#9'return elems.length === 1 ?'
      
        #9#9#9'jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : ' +
        '[] :'
      #9#9#9'jQuery.find.matches(expr, elems);'
      #9'},'
      #9
      #9'dir: function( elem, dir, until ) {'
      #9#9'var matched = [],'
      #9#9#9'cur = elem[ dir ];'
      ''
      
        #9#9'while ( cur && cur.nodeType !== 9 && (until === undefined || c' +
        'ur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {'
      #9#9#9'if ( cur.nodeType === 1 ) {'
      #9#9#9#9'matched.push( cur );'
      #9#9#9'}'
      #9#9#9'cur = cur[dir];'
      #9#9'}'
      #9#9'return matched;'
      #9'},'
      ''
      #9'nth: function( cur, result, dir, elem ) {'
      #9#9'result = result || 1;'
      #9#9'var num = 0;'
      ''
      #9#9'for ( ; cur; cur = cur[dir] ) {'
      #9#9#9'if ( cur.nodeType === 1 && ++num === result ) {'
      #9#9#9#9'break;'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return cur;'
      #9'},'
      ''
      #9'sibling: function( n, elem ) {'
      #9#9'var r = [];'
      ''
      #9#9'for ( ; n; n = n.nextSibling ) {'
      #9#9#9'if ( n.nodeType === 1 && n !== elem ) {'
      #9#9#9#9'r.push( n );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return r;'
      #9'}'
      '});'
      ''
      '// Implement the identical functionality for filter and not'
      'function winnow( elements, qualifier, keep ) {'
      #9'if ( jQuery.isFunction( qualifier ) ) {'
      #9#9'return jQuery.grep(elements, function( elem, i ) {'
      #9#9#9'var retVal = !!qualifier.call( elem, i, elem );'
      #9#9#9'return retVal === keep;'
      #9#9'});'
      ''
      #9'} else if ( qualifier.nodeType ) {'
      #9#9'return jQuery.grep(elements, function( elem, i ) {'
      #9#9#9'return (elem === qualifier) === keep;'
      #9#9'});'
      ''
      #9'} else if ( typeof qualifier === "string" ) {'
      #9#9'var filtered = jQuery.grep(elements, function( elem ) {'
      #9#9#9'return elem.nodeType === 1;'
      #9#9'});'
      ''
      #9#9'if ( isSimple.test( qualifier ) ) {'
      #9#9#9'return jQuery.filter(qualifier, filtered, !keep);'
      #9#9'} else {'
      #9#9#9'qualifier = jQuery.filter( qualifier, filtered );'
      #9#9'}'
      #9'}'
      ''
      #9'return jQuery.grep(elements, function( elem, i ) {'
      #9#9'return (jQuery.inArray( elem, qualifier ) >= 0) === keep;'
      #9'});'
      '}'
      ''
      ''
      ''
      ''
      'var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,'
      #9'rleadingWhitespace = /^\s+/,'
      
        #9'rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param' +
        ')(([\w:]+)[^>]*)\/>/ig,'
      #9'rtagName = /<([\w:]+)/,'
      #9'rtbody = /<tbody/i,'
      #9'rhtml = /<|&#?\w+;/,'
      #9'rnocache = /<(?:script|object|embed|option|style)/i,'
      #9'// checked="checked" or checked (html5)'
      #9'rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,'
      #9'raction = /\=([^="'#39'>\s]+\/)>/g,'
      #9'wrapMap = {'
      #9#9'option: [ 1, "<select multiple='#39'multiple'#39'>", "</select>" ],'
      #9#9'legend: [ 1, "<fieldset>", "</fieldset>" ],'
      #9#9'thead: [ 1, "<table>", "</table>" ],'
      #9#9'tr: [ 2, "<table><tbody>", "</tbody></table>" ],'
      #9#9'td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],'
      
        #9#9'col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></ta' +
        'ble>" ],'
      #9#9'area: [ 1, "<map>", "</map>" ],'
      #9#9'_default: [ 0, "", "" ]'
      #9'};'
      ''
      'wrapMap.optgroup = wrapMap.option;'
      
        'wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.capti' +
        'on = wrapMap.thead;'
      'wrapMap.th = wrapMap.td;'
      ''
      '// IE can'#39't serialize <link> and <script> tags normally'
      'if ( !jQuery.support.htmlSerialize ) {'
      #9'wrapMap._default = [ 1, "div<div>", "</div>" ];'
      '}'
      ''
      'jQuery.fn.extend({'
      #9'text: function( text ) {'
      #9#9'if ( jQuery.isFunction(text) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'var self = jQuery( this );'
      ''
      #9#9#9#9'self.text( text.call(this, i, self.text()) );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( typeof text !== "object" && text !== undefined ) {'
      
        #9#9#9'return this.empty().append( (this[0] && this[0].ownerDocument' +
        ' || document).createTextNode( text ) );'
      #9#9'}'
      ''
      #9#9'return jQuery.text( this );'
      #9'},'
      ''
      #9'wrapAll: function( html ) {'
      #9#9'if ( jQuery.isFunction( html ) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'jQuery(this).wrapAll( html.call(this, i) );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( this[0] ) {'
      #9#9#9'// The elements to wrap the target around'
      
        #9#9#9'var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(' +
        'true);'
      ''
      #9#9#9'if ( this[0].parentNode ) {'
      #9#9#9#9'wrap.insertBefore( this[0] );'
      #9#9#9'}'
      ''
      #9#9#9'wrap.map(function() {'
      #9#9#9#9'var elem = this;'
      ''
      
        #9#9#9#9'while ( elem.firstChild && elem.firstChild.nodeType === 1 ) ' +
        '{'
      #9#9#9#9#9'elem = elem.firstChild;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'return elem;'
      #9#9#9'}).append(this);'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'wrapInner: function( html ) {'
      #9#9'if ( jQuery.isFunction( html ) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'jQuery(this).wrapInner( html.call(this, i) );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'return this.each(function() {'
      #9#9#9'var self = jQuery( this ),'
      #9#9#9#9'contents = self.contents();'
      ''
      #9#9#9'if ( contents.length ) {'
      #9#9#9#9'contents.wrapAll( html );'
      ''
      #9#9#9'} else {'
      #9#9#9#9'self.append( html );'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'wrap: function( html ) {'
      #9#9'return this.each(function() {'
      #9#9#9'jQuery( this ).wrapAll( html );'
      #9#9'});'
      #9'},'
      ''
      #9'unwrap: function() {'
      #9#9'return this.parent().each(function() {'
      #9#9#9'if ( !jQuery.nodeName( this, "body" ) ) {'
      #9#9#9#9'jQuery( this ).replaceWith( this.childNodes );'
      #9#9#9'}'
      #9#9'}).end();'
      #9'},'
      ''
      #9'append: function() {'
      #9#9'return this.domManip(arguments, true, function( elem ) {'
      #9#9#9'if ( this.nodeType === 1 ) {'
      #9#9#9#9'this.appendChild( elem );'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'prepend: function() {'
      #9#9'return this.domManip(arguments, true, function( elem ) {'
      #9#9#9'if ( this.nodeType === 1 ) {'
      #9#9#9#9'this.insertBefore( elem, this.firstChild );'
      #9#9#9'}'
      #9#9'});'
      #9'},'
      ''
      #9'before: function() {'
      #9#9'if ( this[0] && this[0].parentNode ) {'
      #9#9#9'return this.domManip(arguments, false, function( elem ) {'
      #9#9#9#9'this.parentNode.insertBefore( elem, this );'
      #9#9#9'});'
      #9#9'} else if ( arguments.length ) {'
      #9#9#9'var set = jQuery(arguments[0]);'
      #9#9#9'set.push.apply( set, this.toArray() );'
      #9#9#9'return this.pushStack( set, "before", arguments );'
      #9#9'}'
      #9'},'
      ''
      #9'after: function() {'
      #9#9'if ( this[0] && this[0].parentNode ) {'
      #9#9#9'return this.domManip(arguments, false, function( elem ) {'
      #9#9#9#9'this.parentNode.insertBefore( elem, this.nextSibling );'
      #9#9#9'});'
      #9#9'} else if ( arguments.length ) {'
      #9#9#9'var set = this.pushStack( this, "after", arguments );'
      #9#9#9'set.push.apply( set, jQuery(arguments[0]).toArray() );'
      #9#9#9'return set;'
      #9#9'}'
      #9'},'
      #9
      #9'// keepData is for internal use only--do not document'
      #9'remove: function( selector, keepData ) {'
      #9#9'for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {'
      
        #9#9#9'if ( !selector || jQuery.filter( selector, [ elem ] ).length ' +
        ') {'
      #9#9#9#9'if ( !keepData && elem.nodeType === 1 ) {'
      #9#9#9#9#9'jQuery.cleanData( elem.getElementsByTagName("*") );'
      #9#9#9#9#9'jQuery.cleanData( [ elem ] );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( elem.parentNode ) {'
      #9#9#9#9#9' elem.parentNode.removeChild( elem );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9#9
      #9#9'return this;'
      #9'},'
      ''
      #9'empty: function() {'
      #9#9'for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {'
      #9#9#9'// Remove element nodes and prevent memory leaks'
      #9#9#9'if ( elem.nodeType === 1 ) {'
      #9#9#9#9'jQuery.cleanData( elem.getElementsByTagName("*") );'
      #9#9#9'}'
      ''
      #9#9#9'// Remove any remaining nodes'
      #9#9#9'while ( elem.firstChild ) {'
      #9#9#9#9'elem.removeChild( elem.firstChild );'
      #9#9#9'}'
      #9#9'}'
      #9#9
      #9#9'return this;'
      #9'},'
      ''
      #9'clone: function( events ) {'
      #9#9'// Do the clone'
      #9#9'var ret = this.map(function() {'
      
        #9#9#9'if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) )' +
        ' {'
      #9#9#9#9'// IE copies events bound via attachEvent when'
      #9#9#9#9'// using cloneNode. Calling detachEvent on the'
      #9#9#9#9'// clone will also remove the events from the orignal'
      #9#9#9#9'// In order to get around this, we use innerHTML.'
      #9#9#9#9'// Unfortunately, this means some modifications to'
      #9#9#9#9'// attributes in IE that are actually only stored'
      #9#9#9#9'// as properties will not be copied (such as the'
      #9#9#9#9'// the name attribute on an input).'
      #9#9#9#9'var html = this.outerHTML,'
      #9#9#9#9#9'ownerDocument = this.ownerDocument;'
      ''
      #9#9#9#9'if ( !html ) {'
      #9#9#9#9#9'var div = ownerDocument.createElement("div");'
      #9#9#9#9#9'div.appendChild( this.cloneNode(true) );'
      #9#9#9#9#9'html = div.innerHTML;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'return jQuery.clean([html.replace(rinlinejQuery, "")'
      
        #9#9#9#9#9'// Handle the case in IE 8 where action=/test/> self-closes' +
        ' a tag'
      #9#9#9#9#9'.replace(raction, '#39'="$1">'#39')'
      #9#9#9#9#9'.replace(rleadingWhitespace, "")], ownerDocument)[0];'
      #9#9#9'} else {'
      #9#9#9#9'return this.cloneNode(true);'
      #9#9#9'}'
      #9#9'});'
      ''
      #9#9'// Copy the events from the original to the clone'
      #9#9'if ( events === true ) {'
      #9#9#9'cloneCopyEvent( this, ret );'
      #9#9#9'cloneCopyEvent( this.find("*"), ret.find("*") );'
      #9#9'}'
      ''
      #9#9'// Return the cloned set'
      #9#9'return ret;'
      #9'},'
      ''
      #9'html: function( value ) {'
      #9#9'if ( value === undefined ) {'
      #9#9#9'return this[0] && this[0].nodeType === 1 ?'
      #9#9#9#9'this[0].innerHTML.replace(rinlinejQuery, "") :'
      #9#9#9#9'null;'
      ''
      #9#9'// See if we can take a shortcut and just use innerHTML'
      
        #9#9'} else if ( typeof value === "string" && !rnocache.test( value' +
        ' ) &&'
      
        #9#9#9'(jQuery.support.leadingWhitespace || !rleadingWhitespace.test' +
        '( value )) &&'
      
        #9#9#9'!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase' +
        '() ] ) {'
      ''
      #9#9#9'value = value.replace(rxhtmlTag, "<$1></$2>");'
      ''
      #9#9#9'try {'
      #9#9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9#9'// Remove element nodes and prevent memory leaks'
      #9#9#9#9#9'if ( this[i].nodeType === 1 ) {'
      #9#9#9#9#9#9'jQuery.cleanData( this[i].getElementsByTagName("*") );'
      #9#9#9#9#9#9'this[i].innerHTML = value;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      
        #9#9#9'// If using innerHTML throws an exception, use the fallback m' +
        'ethod'
      #9#9#9'} catch(e) {'
      #9#9#9#9'this.empty().append( value );'
      #9#9#9'}'
      ''
      #9#9'} else if ( jQuery.isFunction( value ) ) {'
      #9#9#9'this.each(function(i){'
      #9#9#9#9'var self = jQuery( this );'
      ''
      #9#9#9#9'self.html( value.call(this, i, self.html()) );'
      #9#9#9'});'
      ''
      #9#9'} else {'
      #9#9#9'this.empty().append( value );'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'replaceWith: function( value ) {'
      #9#9'if ( this[0] && this[0].parentNode ) {'
      
        #9#9#9'// Make sure that the elements are removed from the DOM befor' +
        'e they are inserted'
      #9#9#9'// this can help fix replacing a parent with child elements'
      #9#9#9'if ( jQuery.isFunction( value ) ) {'
      #9#9#9#9'return this.each(function(i) {'
      #9#9#9#9#9'var self = jQuery(this), old = self.html();'
      #9#9#9#9#9'self.replaceWith( value.call( this, i, old ) );'
      #9#9#9#9'});'
      #9#9#9'}'
      ''
      #9#9#9'if ( typeof value !== "string" ) {'
      #9#9#9#9'value = jQuery( value ).detach();'
      #9#9#9'}'
      ''
      #9#9#9'return this.each(function() {'
      #9#9#9#9'var next = this.nextSibling,'
      #9#9#9#9#9'parent = this.parentNode;'
      ''
      #9#9#9#9'jQuery( this ).remove();'
      ''
      #9#9#9#9'if ( next ) {'
      #9#9#9#9#9'jQuery(next).before( value );'
      #9#9#9#9'} else {'
      #9#9#9#9#9'jQuery(parent).append( value );'
      #9#9#9#9'}'
      #9#9#9'});'
      #9#9'} else {'
      
        #9#9#9'return this.pushStack( jQuery(jQuery.isFunction(value) ? valu' +
        'e() : value), "replaceWith", value );'
      #9#9'}'
      #9'},'
      ''
      #9'detach: function( selector ) {'
      #9#9'return this.remove( selector, true );'
      #9'},'
      ''
      #9'domManip: function( args, table, callback ) {'
      #9#9'var results, first, fragment, parent,'
      #9#9#9'value = args[0],'
      #9#9#9'scripts = [];'
      ''
      
        #9#9'// We can'#39't cloneNode fragments that contain checked, in WebKi' +
        't'
      
        #9#9'if ( !jQuery.support.checkClone && arguments.length === 3 && t' +
        'ypeof value === "string" && rchecked.test( value ) ) {'
      #9#9#9'return this.each(function() {'
      #9#9#9#9'jQuery(this).domManip( args, table, callback, true );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( jQuery.isFunction(value) ) {'
      #9#9#9'return this.each(function(i) {'
      #9#9#9#9'var self = jQuery(this);'
      
        #9#9#9#9'args[0] = value.call(this, i, table ? self.html() : undefine' +
        'd);'
      #9#9#9#9'self.domManip( args, table, callback );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( this[0] ) {'
      #9#9#9'parent = value && value.parentNode;'
      ''
      
        #9#9#9'// If we'#39're in a fragment, just use that instead of building ' +
        'a new one'
      
        #9#9#9'if ( jQuery.support.parentNode && parent && parent.nodeType =' +
        '== 11 && parent.childNodes.length === this.length ) {'
      #9#9#9#9'results = { fragment: parent };'
      ''
      #9#9#9'} else {'
      #9#9#9#9'results = jQuery.buildFragment( args, this, scripts );'
      #9#9#9'}'
      #9#9#9
      #9#9#9'fragment = results.fragment;'
      #9#9#9
      #9#9#9'if ( fragment.childNodes.length === 1 ) {'
      #9#9#9#9'first = fragment = fragment.firstChild;'
      #9#9#9'} else {'
      #9#9#9#9'first = fragment.firstChild;'
      #9#9#9'}'
      ''
      #9#9#9'if ( first ) {'
      #9#9#9#9'table = table && jQuery.nodeName( first, "tr" );'
      ''
      #9#9#9#9'for ( var i = 0, l = this.length; i < l; i++ ) {'
      #9#9#9#9#9'callback.call('
      #9#9#9#9#9#9'table ?'
      #9#9#9#9#9#9#9'root(this[i], first) :'
      #9#9#9#9#9#9#9'this[i],'
      #9#9#9#9#9#9'i > 0 || results.cacheable || this.length > 1  ?'
      #9#9#9#9#9#9#9'fragment.cloneNode(true) :'
      #9#9#9#9#9#9#9'fragment'
      #9#9#9#9#9');'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'if ( scripts.length ) {'
      #9#9#9#9'jQuery.each( scripts, evalScript );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'}'
      '});'
      ''
      'function root( elem, cur ) {'
      #9'return jQuery.nodeName(elem, "table") ?'
      #9#9'(elem.getElementsByTagName("tbody")[0] ||'
      #9#9'elem.appendChild(elem.ownerDocument.createElement("tbody"))) :'
      #9#9'elem;'
      '}'
      ''
      'function cloneCopyEvent(orig, ret) {'
      #9'var i = 0;'
      ''
      #9'ret.each(function() {'
      #9#9'if ( this.nodeName !== (orig[i] && orig[i].nodeName) ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'var oldData = jQuery.data( orig[i++] ),'
      #9#9#9'curData = jQuery.data( this, oldData ),'
      #9#9#9'events = oldData && oldData.events;'
      ''
      #9#9'if ( events ) {'
      #9#9#9'delete curData.handle;'
      #9#9#9'curData.events = {};'
      ''
      #9#9#9'for ( var type in events ) {'
      #9#9#9#9'for ( var handler in events[ type ] ) {'
      
        #9#9#9#9#9'jQuery.event.add( this, type, events[ type ][ handler ], ev' +
        'ents[ type ][ handler ].data );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'});'
      '}'
      ''
      'jQuery.buildFragment = function( args, nodes, scripts ) {'
      #9'var fragment, cacheable, cacheresults,'
      
        #9#9'doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] ' +
        ': document);'
      ''
      
        #9'// Only cache "small" (1/2 KB) strings that are associated with' +
        ' the main document'
      
        #9'// Cloning options loses the selected state, so don'#39't cache the' +
        'm'
      
        #9'// IE 6 doesn'#39't like it when you put <object> or <embed> elemen' +
        'ts in a fragment'
      
        #9'// Also, WebKit does not clone '#39'checked'#39' attributes on cloneNod' +
        'e, so don'#39't cache'
      
        #9'if ( args.length === 1 && typeof args[0] === "string" && args[0' +
        '].length < 512 && doc === document &&'
      
        #9#9'!rnocache.test( args[0] ) && (jQuery.support.checkClone || !rc' +
        'hecked.test( args[0] )) ) {'
      ''
      #9#9'cacheable = true;'
      #9#9'cacheresults = jQuery.fragments[ args[0] ];'
      #9#9'if ( cacheresults ) {'
      #9#9#9'if ( cacheresults !== 1 ) {'
      #9#9#9#9'fragment = cacheresults;'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      ''
      #9'if ( !fragment ) {'
      #9#9'fragment = doc.createDocumentFragment();'
      #9#9'jQuery.clean( args, doc, fragment, scripts );'
      #9'}'
      ''
      #9'if ( cacheable ) {'
      #9#9'jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;'
      #9'}'
      ''
      #9'return { fragment: fragment, cacheable: cacheable };'
      '};'
      ''
      'jQuery.fragments = {};'
      ''
      'jQuery.each({'
      #9'appendTo: "append",'
      #9'prependTo: "prepend",'
      #9'insertBefore: "before",'
      #9'insertAfter: "after",'
      #9'replaceAll: "replaceWith"'
      '}, function( name, original ) {'
      #9'jQuery.fn[ name ] = function( selector ) {'
      #9#9'var ret = [],'
      #9#9#9'insert = jQuery( selector ),'
      #9#9#9'parent = this.length === 1 && this[0].parentNode;'
      #9#9
      
        #9#9'if ( parent && parent.nodeType === 11 && parent.childNodes.len' +
        'gth === 1 && insert.length === 1 ) {'
      #9#9#9'insert[ original ]( this[0] );'
      #9#9#9'return this;'
      #9#9#9
      #9#9'} else {'
      #9#9#9'for ( var i = 0, l = insert.length; i < l; i++ ) {'
      #9#9#9#9'var elems = (i > 0 ? this.clone(true) : this).get();'
      #9#9#9#9'jQuery( insert[i] )[ original ]( elems );'
      #9#9#9#9'ret = ret.concat( elems );'
      #9#9#9'}'
      #9#9
      #9#9#9'return this.pushStack( ret, name, insert.selector );'
      #9#9'}'
      #9'};'
      '});'
      ''
      'jQuery.extend({'
      #9'clean: function( elems, context, fragment, scripts ) {'
      #9#9'context = context || document;'
      ''
      
        #9#9'// !context.createElement fails in IE with an error but return' +
        's typeof '#39'object'#39
      #9#9'if ( typeof context.createElement === "undefined" ) {'
      
        #9#9#9'context = context.ownerDocument || context[0] && context[0].o' +
        'wnerDocument || document;'
      #9#9'}'
      ''
      #9#9'var ret = [];'
      ''
      #9#9'for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {'
      #9#9#9'if ( typeof elem === "number" ) {'
      #9#9#9#9'elem += "";'
      #9#9#9'}'
      ''
      #9#9#9'if ( !elem ) {'
      #9#9#9#9'continue;'
      #9#9#9'}'
      ''
      #9#9#9'// Convert html string into DOM nodes'
      #9#9#9'if ( typeof elem === "string" && !rhtml.test( elem ) ) {'
      #9#9#9#9'elem = context.createTextNode( elem );'
      ''
      #9#9#9'} else if ( typeof elem === "string" ) {'
      #9#9#9#9'// Fix "XHTML"-style tags in all browsers'
      #9#9#9#9'elem = elem.replace(rxhtmlTag, "<$1></$2>");'
      ''
      #9#9#9#9'// Trim whitespace, otherwise indexOf won'#39't work as expected'
      
        #9#9#9#9'var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase' +
        '(),'
      #9#9#9#9#9'wrap = wrapMap[ tag ] || wrapMap._default,'
      #9#9#9#9#9'depth = wrap[0],'
      #9#9#9#9#9'div = context.createElement("div");'
      ''
      #9#9#9#9'// Go to html and back, then peel off extra wrappers'
      #9#9#9#9'div.innerHTML = wrap[1] + elem + wrap[2];'
      ''
      #9#9#9#9'// Move to the right depth'
      #9#9#9#9'while ( depth-- ) {'
      #9#9#9#9#9'div = div.lastChild;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Remove IE'#39's autoinserted <tbody> from table fragments'
      #9#9#9#9'if ( !jQuery.support.tbody ) {'
      ''
      #9#9#9#9#9'// String was a <table>, *may* have spurious <tbody>'
      #9#9#9#9#9'var hasBody = rtbody.test(elem),'
      #9#9#9#9#9#9'tbody = tag === "table" && !hasBody ?'
      #9#9#9#9#9#9#9'div.firstChild && div.firstChild.childNodes :'
      ''
      #9#9#9#9#9#9#9'// String was a bare <thead> or <tfoot>'
      #9#9#9#9#9#9#9'wrap[1] === "<table>" && !hasBody ?'
      #9#9#9#9#9#9#9#9'div.childNodes :'
      #9#9#9#9#9#9#9#9'[];'
      ''
      #9#9#9#9#9'for ( var j = tbody.length - 1; j >= 0 ; --j ) {'
      
        #9#9#9#9#9#9'if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ]' +
        '.childNodes.length ) {'
      #9#9#9#9#9#9#9'tbody[ j ].parentNode.removeChild( tbody[ j ] );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9'}'
      ''
      
        #9#9#9#9'// IE completely kills leading whitespace when innerHTML is ' +
        'used'
      
        #9#9#9#9'if ( !jQuery.support.leadingWhitespace && rleadingWhitespace' +
        '.test( elem ) ) {'
      
        #9#9#9#9#9'div.insertBefore( context.createTextNode( rleadingWhitespac' +
        'e.exec(elem)[0] ), div.firstChild );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'elem = div.childNodes;'
      #9#9#9'}'
      ''
      #9#9#9'if ( elem.nodeType ) {'
      #9#9#9#9'ret.push( elem );'
      #9#9#9'} else {'
      #9#9#9#9'ret = jQuery.merge( ret, elem );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'if ( fragment ) {'
      #9#9#9'for ( i = 0; ret[i]; i++ ) {'
      
        #9#9#9#9'if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret' +
        '[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {'
      
        #9#9#9#9#9'scripts.push( ret[i].parentNode ? ret[i].parentNode.removeC' +
        'hild( ret[i] ) : ret[i] );'
      #9#9#9#9
      #9#9#9#9'} else {'
      #9#9#9#9#9'if ( ret[i].nodeType === 1 ) {'
      
        #9#9#9#9#9#9'ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(' +
        'ret[i].getElementsByTagName("script"))) );'
      #9#9#9#9#9'}'
      #9#9#9#9#9'fragment.appendChild( ret[i] );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'},'
      #9
      #9'cleanData: function( elems ) {'
      #9#9'var data, id, cache = jQuery.cache,'
      #9#9#9'special = jQuery.event.special,'
      #9#9#9'deleteExpando = jQuery.support.deleteExpando;'
      #9#9
      #9#9'for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {'
      
        #9#9#9'if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase' +
        '()] ) {'
      #9#9#9#9'continue;'
      #9#9#9'}'
      ''
      #9#9#9'id = elem[ jQuery.expando ];'
      #9#9#9
      #9#9#9'if ( id ) {'
      #9#9#9#9'data = cache[ id ];'
      #9#9#9#9
      #9#9#9#9'if ( data && data.events ) {'
      #9#9#9#9#9'for ( var type in data.events ) {'
      #9#9#9#9#9#9'if ( special[ type ] ) {'
      #9#9#9#9#9#9#9'jQuery.event.remove( elem, type );'
      ''
      #9#9#9#9#9#9'} else {'
      #9#9#9#9#9#9#9'jQuery.removeEvent( elem, type, data.handle );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9#9
      #9#9#9#9'if ( deleteExpando ) {'
      #9#9#9#9#9'delete elem[ jQuery.expando ];'
      ''
      #9#9#9#9'} else if ( elem.removeAttribute ) {'
      #9#9#9#9#9'elem.removeAttribute( jQuery.expando );'
      #9#9#9#9'}'
      #9#9#9#9
      #9#9#9#9'delete cache[ id ];'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      '});'
      ''
      'function evalScript( i, elem ) {'
      #9'if ( elem.src ) {'
      #9#9'jQuery.ajax({'
      #9#9#9'url: elem.src,'
      #9#9#9'async: false,'
      #9#9#9'dataType: "script"'
      #9#9'});'
      #9'} else {'
      
        #9#9'jQuery.globalEval( elem.text || elem.textContent || elem.inner' +
        'HTML || "" );'
      #9'}'
      ''
      #9'if ( elem.parentNode ) {'
      #9#9'elem.parentNode.removeChild( elem );'
      #9'}'
      '}'
      ''
      ''
      ''
      ''
      'var ralpha = /alpha\([^)]*\)/i,'
      #9'ropacity = /opacity=([^)]*)/,'
      #9'rdashAlpha = /-([a-z])/ig,'
      #9'rupper = /([A-Z])/g,'
      #9'rnumpx = /^-?\d+(?:px)?$/i,'
      #9'rnum = /^-?\d/,'
      ''
      
        #9'cssShow = { position: "absolute", visibility: "hidden", display' +
        ': "block" },'
      #9'cssWidth = [ "Left", "Right" ],'
      #9'cssHeight = [ "Top", "Bottom" ],'
      #9'curCSS,'
      ''
      #9'getComputedStyle,'
      #9'currentStyle,'
      ''
      #9'fcamelCase = function( all, letter ) {'
      #9#9'return letter.toUpperCase();'
      #9'};'
      ''
      'jQuery.fn.css = function( name, value ) {'
      #9'// Setting '#39'undefined'#39' is a no-op'
      #9'if ( arguments.length === 2 && value === undefined ) {'
      #9#9'return this;'
      #9'}'
      ''
      
        #9'return jQuery.access( this, name, value, true, function( elem, ' +
        'name, value ) {'
      #9#9'return value !== undefined ?'
      #9#9#9'jQuery.style( elem, name, value ) :'
      #9#9#9'jQuery.css( elem, name );'
      #9'});'
      '};'
      ''
      'jQuery.extend({'
      #9'// Add in style property hooks for overriding the default'
      #9'// behavior of getting and setting a style property'
      #9'cssHooks: {'
      #9#9'opacity: {'
      #9#9#9'get: function( elem, computed ) {'
      #9#9#9#9'if ( computed ) {'
      #9#9#9#9#9'// We should always get a number back from opacity'
      #9#9#9#9#9'var ret = curCSS( elem, "opacity", "opacity" );'
      #9#9#9#9#9'return ret === "" ? "1" : ret;'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'return elem.style.opacity;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'}'
      #9'},'
      ''
      #9'// Exclude the following css properties to add px'
      #9'cssNumber: {'
      #9#9'"zIndex": true,'
      #9#9'"fontWeight": true,'
      #9#9'"opacity": true,'
      #9#9'"zoom": true,'
      #9#9'"lineHeight": true'
      #9'},'
      ''
      #9'// Add in properties whose names you wish to fix before'
      #9'// setting or getting the value'
      #9'cssProps: {'
      #9#9'// normalize float css property'
      #9#9'"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"'
      #9'},'
      ''
      #9'// Get and set the style property on a DOM Node'
      #9'style: function( elem, name, value, extra ) {'
      #9#9'// Don'#39't set styles on text and comment nodes'
      
        #9#9'if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !e' +
        'lem.style ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'// Make sure that we'#39're working with the right name'
      #9#9'var ret, origName = jQuery.camelCase( name ),'
      #9#9#9'style = elem.style, hooks = jQuery.cssHooks[ origName ];'
      ''
      #9#9'name = jQuery.cssProps[ origName ] || origName;'
      ''
      #9#9'// Check if we'#39're setting a value'
      #9#9'if ( value !== undefined ) {'
      #9#9#9'// Make sure that NaN and null values aren'#39't set. See: #7116'
      
        #9#9#9'if ( typeof value === "number" && isNaN( value ) || value == ' +
        'null ) {'
      #9#9#9#9'return;'
      #9#9#9'}'
      ''
      
        #9#9#9'// If a number was passed in, add '#39'px'#39' to the (except for cer' +
        'tain CSS properties)'
      
        #9#9#9'if ( typeof value === "number" && !jQuery.cssNumber[ origName' +
        ' ] ) {'
      #9#9#9#9'value += "px";'
      #9#9#9'}'
      ''
      
        #9#9#9'// If a hook was provided, use that value, otherwise just set' +
        ' the specified value'
      
        #9#9#9'if ( !hooks || !("set" in hooks) || (value = hooks.set( elem,' +
        ' value )) !== undefined ) {'
      
        #9#9#9#9'// Wrapped to prevent IE from throwing errors when '#39'invalid'#39 +
        ' values are provided'
      #9#9#9#9'// Fixes bug #5509'
      #9#9#9#9'try {'
      #9#9#9#9#9'style[ name ] = value;'
      #9#9#9#9'} catch(e) {}'
      #9#9#9'}'
      ''
      #9#9'} else {'
      
        #9#9#9'// If a hook was provided get the non-computed value from the' +
        're'
      
        #9#9#9'if ( hooks && "get" in hooks && (ret = hooks.get( elem, false' +
        ', extra )) !== undefined ) {'
      #9#9#9#9'return ret;'
      #9#9#9'}'
      ''
      #9#9#9'// Otherwise just get the value from the style object'
      #9#9#9'return style[ name ];'
      #9#9'}'
      #9'},'
      ''
      #9'css: function( elem, name, extra ) {'
      #9#9'// Make sure that we'#39're working with the right name'
      #9#9'var ret, origName = jQuery.camelCase( name ),'
      #9#9#9'hooks = jQuery.cssHooks[ origName ];'
      ''
      #9#9'name = jQuery.cssProps[ origName ] || origName;'
      ''
      #9#9'// If a hook was provided get the computed value from there'
      
        #9#9'if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, ' +
        'extra )) !== undefined ) {'
      #9#9#9'return ret;'
      ''
      
        #9#9'// Otherwise, if a way to get the computed value exists, use t' +
        'hat'
      #9#9'} else if ( curCSS ) {'
      #9#9#9'return curCSS( elem, name, origName );'
      #9#9'}'
      #9'},'
      ''
      
        #9'// A method for quickly swapping in/out CSS properties to get c' +
        'orrect calculations'
      #9'swap: function( elem, options, callback ) {'
      #9#9'var old = {};'
      ''
      #9#9'// Remember the old values, and insert the new ones'
      #9#9'for ( var name in options ) {'
      #9#9#9'old[ name ] = elem.style[ name ];'
      #9#9#9'elem.style[ name ] = options[ name ];'
      #9#9'}'
      ''
      #9#9'callback.call( elem );'
      ''
      #9#9'// Revert the old values'
      #9#9'for ( name in options ) {'
      #9#9#9'elem.style[ name ] = old[ name ];'
      #9#9'}'
      #9'},'
      ''
      #9'camelCase: function( string ) {'
      #9#9'return string.replace( rdashAlpha, fcamelCase );'
      #9'}'
      '});'
      ''
      '// DEPRECATED, Use jQuery.css() instead'
      'jQuery.curCSS = jQuery.css;'
      ''
      'jQuery.each(["height", "width"], function( i, name ) {'
      #9'jQuery.cssHooks[ name ] = {'
      #9#9'get: function( elem, computed, extra ) {'
      #9#9#9'var val;'
      ''
      #9#9#9'if ( computed ) {'
      #9#9#9#9'if ( elem.offsetWidth !== 0 ) {'
      #9#9#9#9#9'val = getWH( elem, name, extra );'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'jQuery.swap( elem, cssShow, function() {'
      #9#9#9#9#9#9'val = getWH( elem, name, extra );'
      #9#9#9#9#9'});'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( val <= 0 ) {'
      #9#9#9#9#9'val = curCSS( elem, name, name );'
      ''
      #9#9#9#9#9'if ( val === "0px" && currentStyle ) {'
      #9#9#9#9#9#9'val = currentStyle( elem, name, name );'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'if ( val != null ) {'
      #9#9#9#9#9#9'// Should return "auto" instead of 0, use 0 for'
      #9#9#9#9#9#9'// temporary backwards-compat'
      #9#9#9#9#9#9'return val === "" || val === "auto" ? "0px" : val;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( val < 0 || val == null ) {'
      #9#9#9#9#9'val = elem.style[ name ];'
      ''
      #9#9#9#9#9'// Should return "auto" instead of 0, use 0 for'
      #9#9#9#9#9'// temporary backwards-compat'
      #9#9#9#9#9'return val === "" || val === "auto" ? "0px" : val;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'return typeof val === "string" ? val : val + "px";'
      #9#9#9'}'
      #9#9'},'
      ''
      #9#9'set: function( elem, value ) {'
      #9#9#9'if ( rnumpx.test( value ) ) {'
      #9#9#9#9'// ignore negative width and height values #1599'
      #9#9#9#9'value = parseFloat(value);'
      ''
      #9#9#9#9'if ( value >= 0 ) {'
      #9#9#9#9#9'return value + "px";'
      #9#9#9#9'}'
      ''
      #9#9#9'} else {'
      #9#9#9#9'return value;'
      #9#9#9'}'
      #9#9'}'
      #9'};'
      '});'
      ''
      'if ( !jQuery.support.opacity ) {'
      #9'jQuery.cssHooks.opacity = {'
      #9#9'get: function( elem, computed ) {'
      #9#9#9'// IE uses filters for opacity'
      
        #9#9#9'return ropacity.test((computed && elem.currentStyle ? elem.cu' +
        'rrentStyle.filter : elem.style.filter) || "") ?'
      #9#9#9#9'(parseFloat(RegExp.$1) / 100) + "" :'
      #9#9#9#9'computed ? "1" : "";'
      #9#9'},'
      ''
      #9#9'set: function( elem, value ) {'
      #9#9#9'var style = elem.style;'
      ''
      #9#9#9'// IE has trouble with opacity if it does not have layout'
      #9#9#9'// Force it by setting the zoom level'
      #9#9#9'style.zoom = 1;'
      ''
      #9#9#9'// Set the alpha filter to set the opacity'
      #9#9#9'var opacity = jQuery.isNaN(value) ?'
      #9#9#9#9'"" :'
      #9#9#9#9'"alpha(opacity=" + value * 100 + ")",'
      #9#9#9#9'filter = style.filter || "";'
      ''
      #9#9#9'style.filter = ralpha.test(filter) ?'
      #9#9#9#9'filter.replace(ralpha, opacity) :'
      #9#9#9#9'style.filter + '#39' '#39' + opacity;'
      #9#9'}'
      #9'};'
      '}'
      ''
      
        'if ( document.defaultView && document.defaultView.getComputedSty' +
        'le ) {'
      #9'getComputedStyle = function( elem, newName, name ) {'
      #9#9'var ret, defaultView, computedStyle;'
      ''
      #9#9'name = name.replace( rupper, "-$1" ).toLowerCase();'
      ''
      #9#9'if ( !(defaultView = elem.ownerDocument.defaultView) ) {'
      #9#9#9'return undefined;'
      #9#9'}'
      ''
      
        #9#9'if ( (computedStyle = defaultView.getComputedStyle( elem, null' +
        ' )) ) {'
      #9#9#9'ret = computedStyle.getPropertyValue( name );'
      
        #9#9#9'if ( ret === "" && !jQuery.contains( elem.ownerDocument.docum' +
        'entElement, elem ) ) {'
      #9#9#9#9'ret = jQuery.style( elem, name );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return ret;'
      #9'};'
      '}'
      ''
      'if ( document.documentElement.currentStyle ) {'
      #9'currentStyle = function( elem, name ) {'
      #9#9'var left, rsLeft,'
      #9#9#9'ret = elem.currentStyle && elem.currentStyle[ name ],'
      #9#9#9'style = elem.style;'
      ''
      #9#9'// From the awesome hack by Dean Edwards'
      
        #9#9'// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-1' +
        '02291'
      ''
      #9#9'// If we'#39're not dealing with a regular pixel number'
      
        #9#9'// but a number that has a weird ending, we need to convert it' +
        ' to pixels'
      #9#9'if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {'
      #9#9#9'// Remember the original values'
      #9#9#9'left = style.left;'
      #9#9#9'rsLeft = elem.runtimeStyle.left;'
      ''
      #9#9#9'// Put in the new values to get a computed value out'
      #9#9#9'elem.runtimeStyle.left = elem.currentStyle.left;'
      #9#9#9'style.left = name === "fontSize" ? "1em" : (ret || 0);'
      #9#9#9'ret = style.pixelLeft + "px";'
      ''
      #9#9#9'// Revert the changed values'
      #9#9#9'style.left = left;'
      #9#9#9'elem.runtimeStyle.left = rsLeft;'
      #9#9'}'
      ''
      #9#9'return ret === "" ? "auto" : ret;'
      #9'};'
      '}'
      ''
      'curCSS = getComputedStyle || currentStyle;'
      ''
      'function getWH( elem, name, extra ) {'
      #9'var which = name === "width" ? cssWidth : cssHeight,'
      #9#9'val = name === "width" ? elem.offsetWidth : elem.offsetHeight;'
      ''
      #9'if ( extra === "border" ) {'
      #9#9'return val;'
      #9'}'
      ''
      #9'jQuery.each( which, function() {'
      #9#9'if ( !extra ) {'
      #9#9#9'val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;'
      #9#9'}'
      ''
      #9#9'if ( extra === "margin" ) {'
      #9#9#9'val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;'
      ''
      #9#9'} else {'
      
        #9#9#9'val -= parseFloat(jQuery.css( elem, "border" + this + "Width"' +
        ' )) || 0;'
      #9#9'}'
      #9'});'
      ''
      #9'return val;'
      '}'
      ''
      'if ( jQuery.expr && jQuery.expr.filters ) {'
      #9'jQuery.expr.filters.hidden = function( elem ) {'
      #9#9'var width = elem.offsetWidth,'
      #9#9#9'height = elem.offsetHeight;'
      ''
      
        #9#9'return (width === 0 && height === 0) || (!jQuery.support.relia' +
        'bleHiddenOffsets && (elem.style.display || jQuery.css( elem, "di' +
        'splay" )) === "none");'
      #9'};'
      ''
      #9'jQuery.expr.filters.visible = function( elem ) {'
      #9#9'return !jQuery.expr.filters.hidden( elem );'
      #9'};'
      '}'
      ''
      ''
      ''
      ''
      'var jsc = jQuery.now(),'
      
        #9'rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi' +
        ','
      #9'rselectTextarea = /^(?:select|textarea)/i,'
      
        #9'rinput = /^(?:color|date|datetime|email|hidden|month|number|pas' +
        'sword|range|search|tel|text|time|url|week)$/i,'
      #9'rnoContent = /^(?:GET|HEAD)$/,'
      #9'rbracket = /\[\]$/,'
      #9'jsre = /\=\?(&|$)/,'
      #9'rquery = /\?/,'
      #9'rts = /([?&])_=[^&]*/,'
      #9'rurl = /^(\w+:)?\/\/([^\/?#]+)/,'
      #9'r20 = /%20/g,'
      #9'rhash = /#.*$/,'
      ''
      #9'// Keep a copy of the old load method'
      #9'_load = jQuery.fn.load;'
      ''
      'jQuery.fn.extend({'
      #9'load: function( url, params, callback ) {'
      #9#9'if ( typeof url !== "string" && _load ) {'
      #9#9#9'return _load.apply( this, arguments );'
      ''
      #9#9'// Don'#39't do a request if no elements are being requested'
      #9#9'} else if ( !this.length ) {'
      #9#9#9'return this;'
      #9#9'}'
      ''
      #9#9'var off = url.indexOf(" ");'
      #9#9'if ( off >= 0 ) {'
      #9#9#9'var selector = url.slice(off, url.length);'
      #9#9#9'url = url.slice(0, off);'
      #9#9'}'
      ''
      #9#9'// Default to a GET request'
      #9#9'var type = "GET";'
      ''
      #9#9'// If the second parameter was provided'
      #9#9'if ( params ) {'
      #9#9#9'// If it'#39's a function'
      #9#9#9'if ( jQuery.isFunction( params ) ) {'
      #9#9#9#9'// We assume that it'#39's the callback'
      #9#9#9#9'callback = params;'
      #9#9#9#9'params = null;'
      ''
      #9#9#9'// Otherwise, build a param string'
      #9#9#9'} else if ( typeof params === "object" ) {'
      
        #9#9#9#9'params = jQuery.param( params, jQuery.ajaxSettings.tradition' +
        'al );'
      #9#9#9#9'type = "POST";'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'var self = this;'
      ''
      #9#9'// Request the remote document'
      #9#9'jQuery.ajax({'
      #9#9#9'url: url,'
      #9#9#9'type: type,'
      #9#9#9'dataType: "html",'
      #9#9#9'data: params,'
      #9#9#9'complete: function( res, status ) {'
      
        #9#9#9#9'// If successful, inject the HTML into all the matched eleme' +
        'nts'
      #9#9#9#9'if ( status === "success" || status === "notmodified" ) {'
      #9#9#9#9#9'// See if a selector was specified'
      #9#9#9#9#9'self.html( selector ?'
      #9#9#9#9#9#9'// Create a dummy div to hold the results'
      #9#9#9#9#9#9'jQuery("<div>")'
      
        #9#9#9#9#9#9#9'// inject the contents of the document in, removing the s' +
        'cripts'
      #9#9#9#9#9#9#9'// to avoid any '#39'Permission Denied'#39' errors in IE'
      #9#9#9#9#9#9#9'.append(res.responseText.replace(rscript, ""))'
      ''
      #9#9#9#9#9#9#9'// Locate the specified elements'
      #9#9#9#9#9#9#9'.find(selector) :'
      ''
      #9#9#9#9#9#9'// If not, just inject the full result'
      #9#9#9#9#9#9'res.responseText );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( callback ) {'
      #9#9#9#9#9'self.each( callback, [res.responseText, status, res] );'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'});'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'serialize: function() {'
      #9#9'return jQuery.param(this.serializeArray());'
      #9'},'
      ''
      #9'serializeArray: function() {'
      #9#9'return this.map(function() {'
      
        #9#9#9'return this.elements ? jQuery.makeArray(this.elements) : this' +
        ';'
      #9#9'})'
      #9#9'.filter(function() {'
      #9#9#9'return this.name && !this.disabled &&'
      #9#9#9#9'(this.checked || rselectTextarea.test(this.nodeName) ||'
      #9#9#9#9#9'rinput.test(this.type));'
      #9#9'})'
      #9#9'.map(function( i, elem ) {'
      #9#9#9'var val = jQuery(this).val();'
      ''
      #9#9#9'return val == null ?'
      #9#9#9#9'null :'
      #9#9#9#9'jQuery.isArray(val) ?'
      #9#9#9#9#9'jQuery.map( val, function( val, i ) {'
      #9#9#9#9#9#9'return { name: elem.name, value: val };'
      #9#9#9#9#9'}) :'
      #9#9#9#9#9'{ name: elem.name, value: val };'
      #9#9'}).get();'
      #9'}'
      '});'
      ''
      '// Attach a bunch of functions for handling common AJAX events'
      
        'jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSucc' +
        'ess ajaxSend".split(" "), function( i, o ) {'
      #9'jQuery.fn[o] = function( f ) {'
      #9#9'return this.bind(o, f);'
      #9'};'
      '});'
      ''
      'jQuery.extend({'
      #9'get: function( url, data, callback, type ) {'
      #9#9'// shift arguments if data argument was omited'
      #9#9'if ( jQuery.isFunction( data ) ) {'
      #9#9#9'type = type || callback;'
      #9#9#9'callback = data;'
      #9#9#9'data = null;'
      #9#9'}'
      ''
      #9#9'return jQuery.ajax({'
      #9#9#9'type: "GET",'
      #9#9#9'url: url,'
      #9#9#9'data: data,'
      #9#9#9'success: callback,'
      #9#9#9'dataType: type'
      #9#9'});'
      #9'},'
      ''
      #9'getScript: function( url, callback ) {'
      #9#9'return jQuery.get(url, null, callback, "script");'
      #9'},'
      ''
      #9'getJSON: function( url, data, callback ) {'
      #9#9'return jQuery.get(url, data, callback, "json");'
      #9'},'
      ''
      #9'post: function( url, data, callback, type ) {'
      #9#9'// shift arguments if data argument was omited'
      #9#9'if ( jQuery.isFunction( data ) ) {'
      #9#9#9'type = type || callback;'
      #9#9#9'callback = data;'
      #9#9#9'data = {};'
      #9#9'}'
      ''
      #9#9'return jQuery.ajax({'
      #9#9#9'type: "POST",'
      #9#9#9'url: url,'
      #9#9#9'data: data,'
      #9#9#9'success: callback,'
      #9#9#9'dataType: type'
      #9#9'});'
      #9'},'
      ''
      #9'ajaxSetup: function( settings ) {'
      #9#9'jQuery.extend( jQuery.ajaxSettings, settings );'
      #9'},'
      ''
      #9'ajaxSettings: {'
      #9#9'url: location.href,'
      #9#9'global: true,'
      #9#9'type: "GET",'
      #9#9'contentType: "application/x-www-form-urlencoded",'
      #9#9'processData: true,'
      #9#9'async: true,'
      #9#9'/*'
      #9#9'timeout: 0,'
      #9#9'data: null,'
      #9#9'username: null,'
      #9#9'password: null,'
      #9#9'traditional: false,'
      #9#9'*/'
      #9#9'// This function can be overriden by calling jQuery.ajaxSetup'
      #9#9'xhr: function() {'
      #9#9#9'return new window.XMLHttpRequest();'
      #9#9'},'
      #9#9'accepts: {'
      #9#9#9'xml: "application/xml, text/xml",'
      #9#9#9'html: "text/html",'
      #9#9#9'script: "text/javascript, application/javascript",'
      #9#9#9'json: "application/json, text/javascript",'
      #9#9#9'text: "text/plain",'
      #9#9#9'_default: "*/*"'
      #9#9'}'
      #9'},'
      ''
      #9'ajax: function( origSettings ) {'
      
        #9#9'var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSetti' +
        'ngs),'
      
        #9#9#9'jsonp, status, data, type = s.type.toUpperCase(), noContent =' +
        ' rnoContent.test(type);'
      ''
      #9#9's.url = s.url.replace( rhash, "" );'
      ''
      
        #9#9'// Use original (not extended) context object if it was provid' +
        'ed'
      
        #9#9's.context = origSettings && origSettings.context != null ? ori' +
        'gSettings.context : s;'
      ''
      #9#9'// convert data if not already a string'
      #9#9'if ( s.data && s.processData && typeof s.data !== "string" ) {'
      #9#9#9's.data = jQuery.param( s.data, s.traditional );'
      #9#9'}'
      ''
      #9#9'// Handle JSONP Parameter Callbacks'
      #9#9'if ( s.dataType === "jsonp" ) {'
      #9#9#9'if ( type === "GET" ) {'
      #9#9#9#9'if ( !jsre.test( s.url ) ) {'
      
        #9#9#9#9#9's.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "' +
        'callback") + "=?";'
      #9#9#9#9'}'
      #9#9#9'} else if ( !s.data || !jsre.test(s.data) ) {'
      
        #9#9#9#9's.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callbac' +
        'k") + "=?";'
      #9#9#9'}'
      #9#9#9's.dataType = "json";'
      #9#9'}'
      ''
      #9#9'// Build temporary JSONP function'
      
        #9#9'if ( s.dataType === "json" && (s.data && jsre.test(s.data) || ' +
        'jsre.test(s.url)) ) {'
      #9#9#9'jsonp = s.jsonpCallback || ("jsonp" + jsc++);'
      ''
      
        #9#9#9'// Replace the =? sequence both in the query string and the d' +
        'ata'
      #9#9#9'if ( s.data ) {'
      #9#9#9#9's.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");'
      #9#9#9'}'
      ''
      #9#9#9's.url = s.url.replace(jsre, "=" + jsonp + "$1");'
      ''
      #9#9#9'// We need to make sure'
      #9#9#9'// that a JSONP style response is executed properly'
      #9#9#9's.dataType = "script";'
      ''
      #9#9#9'// Handle JSONP-style loading'
      #9#9#9'var customJsonp = window[ jsonp ];'
      ''
      #9#9#9'window[ jsonp ] = function( tmp ) {'
      #9#9#9#9'if ( jQuery.isFunction( customJsonp ) ) {'
      #9#9#9#9#9'customJsonp( tmp );'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'// Garbage collect'
      #9#9#9#9#9'window[ jsonp ] = undefined;'
      ''
      #9#9#9#9#9'try {'
      #9#9#9#9#9#9'delete window[ jsonp ];'
      #9#9#9#9#9'} catch( jsonpError ) {}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'data = tmp;'
      #9#9#9#9'jQuery.handleSuccess( s, xhr, status, data );'
      #9#9#9#9'jQuery.handleComplete( s, xhr, status, data );'
      #9#9#9#9
      #9#9#9#9'if ( head ) {'
      #9#9#9#9#9'head.removeChild( script );'
      #9#9#9#9'}'
      #9#9#9'};'
      #9#9'}'
      ''
      #9#9'if ( s.dataType === "script" && s.cache === null ) {'
      #9#9#9's.cache = false;'
      #9#9'}'
      ''
      #9#9'if ( s.cache === false && noContent ) {'
      #9#9#9'var ts = jQuery.now();'
      ''
      #9#9#9'// try replacing _= if it is there'
      #9#9#9'var ret = s.url.replace(rts, "$1_=" + ts);'
      ''
      #9#9#9'// if nothing was replaced, add timestamp to the end'
      
        #9#9#9's.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : ' +
        '"?") + "_=" + ts : "");'
      #9#9'}'
      ''
      
        #9#9'// If data is available, append data to url for GET/HEAD reque' +
        'sts'
      #9#9'if ( s.data && noContent ) {'
      #9#9#9's.url += (rquery.test(s.url) ? "&" : "?") + s.data;'
      #9#9'}'
      ''
      #9#9'// Watch for a new set of requests'
      #9#9'if ( s.global && jQuery.active++ === 0 ) {'
      #9#9#9'jQuery.event.trigger( "ajaxStart" );'
      #9#9'}'
      ''
      #9#9'// Matches an absolute URL, and saves the domain'
      #9#9'var parts = rurl.exec( s.url ),'
      
        #9#9#9'remote = parts && (parts[1] && parts[1].toLowerCase() !== loc' +
        'ation.protocol || parts[2].toLowerCase() !== location.host);'
      ''
      #9#9'// If we'#39're requesting a remote document'
      #9#9'// and trying to load JSON or Script with a GET'
      #9#9'if ( s.dataType === "script" && type === "GET" && remote ) {'
      
        #9#9#9'var head = document.getElementsByTagName("head")[0] || docume' +
        'nt.documentElement;'
      #9#9#9'var script = document.createElement("script");'
      #9#9#9'if ( s.scriptCharset ) {'
      #9#9#9#9'script.charset = s.scriptCharset;'
      #9#9#9'}'
      #9#9#9'script.src = s.url;'
      ''
      #9#9#9'// Handle Script loading'
      #9#9#9'if ( !jsonp ) {'
      #9#9#9#9'var done = false;'
      ''
      #9#9#9#9'// Attach handlers for all browsers'
      #9#9#9#9'script.onload = script.onreadystatechange = function() {'
      #9#9#9#9#9'if ( !done && (!this.readyState ||'
      
        #9#9#9#9#9#9#9'this.readyState === "loaded" || this.readyState === "comp' +
        'lete") ) {'
      #9#9#9#9#9#9'done = true;'
      #9#9#9#9#9#9'jQuery.handleSuccess( s, xhr, status, data );'
      #9#9#9#9#9#9'jQuery.handleComplete( s, xhr, status, data );'
      ''
      #9#9#9#9#9#9'// Handle memory leak in IE'
      #9#9#9#9#9#9'script.onload = script.onreadystatechange = null;'
      #9#9#9#9#9#9'if ( head && script.parentNode ) {'
      #9#9#9#9#9#9#9'head.removeChild( script );'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'};'
      #9#9#9'}'
      ''
      
        #9#9#9'// Use insertBefore instead of appendChild  to circumvent an ' +
        'IE6 bug.'
      #9#9#9'// This arises when a base node is used (#2709 and #4378).'
      #9#9#9'head.insertBefore( script, head.firstChild );'
      ''
      #9#9#9'// We handle everything using the script element injection'
      #9#9#9'return undefined;'
      #9#9'}'
      ''
      #9#9'var requestDone = false;'
      ''
      #9#9'// Create the request object'
      #9#9'var xhr = s.xhr();'
      ''
      #9#9'if ( !xhr ) {'
      #9#9#9'return;'
      #9#9'}'
      ''
      #9#9'// Open the socket'
      
        #9#9'// Passing null username, generates a login popup on Opera (#2' +
        '865)'
      #9#9'if ( s.username ) {'
      #9#9#9'xhr.open(type, s.url, s.async, s.username, s.password);'
      #9#9'} else {'
      #9#9#9'xhr.open(type, s.url, s.async);'
      #9#9'}'
      ''
      
        #9#9'// Need an extra try/catch for cross domain requests in Firefo' +
        'x 3'
      #9#9'try {'
      
        #9#9#9'// Set content-type if data specified and content-body is val' +
        'id for this type'
      
        #9#9#9'if ( (s.data != null && !noContent) || (origSettings && origS' +
        'ettings.contentType) ) {'
      #9#9#9#9'xhr.setRequestHeader("Content-Type", s.contentType);'
      #9#9#9'}'
      ''
      
        #9#9#9'// Set the If-Modified-Since and/or If-None-Match header, if ' +
        'in ifModified mode.'
      #9#9#9'if ( s.ifModified ) {'
      #9#9#9#9'if ( jQuery.lastModified[s.url] ) {'
      
        #9#9#9#9#9'xhr.setRequestHeader("If-Modified-Since", jQuery.lastModifi' +
        'ed[s.url]);'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( jQuery.etag[s.url] ) {'
      #9#9#9#9#9'xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]);'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      
        #9#9#9'// Set header so the called script knows that it'#39's an XMLHttp' +
        'Request'
      #9#9#9'// Only send the header if it'#39's not a remote XHR'
      #9#9#9'if ( !remote ) {'
      #9#9#9#9'xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");'
      #9#9#9'}'
      ''
      
        #9#9#9'// Set the Accepts header for the server, depending on the da' +
        'taType'
      
        #9#9#9'xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dat' +
        'aType ] ?'
      #9#9#9#9's.accepts[ s.dataType ] + ", */*; q=0.01" :'
      #9#9#9#9's.accepts._default );'
      #9#9'} catch( headerError ) {}'
      ''
      #9#9'// Allow custom headers/mimetypes and early abort'
      
        #9#9'if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === ' +
        'false ) {'
      #9#9#9'// Handle the global AJAX counter'
      #9#9#9'if ( s.global && jQuery.active-- === 1 ) {'
      #9#9#9#9'jQuery.event.trigger( "ajaxStop" );'
      #9#9#9'}'
      ''
      #9#9#9'// close opended socket'
      #9#9#9'xhr.abort();'
      #9#9#9'return false;'
      #9#9'}'
      ''
      #9#9'if ( s.global ) {'
      #9#9#9'jQuery.triggerGlobal( s, "ajaxSend", [xhr, s] );'
      #9#9'}'
      ''
      #9#9'// Wait for a response to come back'
      
        #9#9'var onreadystatechange = xhr.onreadystatechange = function( is' +
        'Timeout ) {'
      #9#9#9'// The request was aborted'
      
        #9#9#9'if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) ' +
        '{'
      #9#9#9#9'// Opera doesn'#39't call onreadystatechange before this point'
      #9#9#9#9'// so we simulate the call'
      #9#9#9#9'if ( !requestDone ) {'
      #9#9#9#9#9'jQuery.handleComplete( s, xhr, status, data );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'requestDone = true;'
      #9#9#9#9'if ( xhr ) {'
      #9#9#9#9#9'xhr.onreadystatechange = jQuery.noop;'
      #9#9#9#9'}'
      ''
      
        #9#9#9'// The transfer is complete and the data is available, or the' +
        ' request timed out'
      
        #9#9#9'} else if ( !requestDone && xhr && (xhr.readyState === 4 || i' +
        'sTimeout === "timeout") ) {'
      #9#9#9#9'requestDone = true;'
      #9#9#9#9'xhr.onreadystatechange = jQuery.noop;'
      ''
      #9#9#9#9'status = isTimeout === "timeout" ?'
      #9#9#9#9#9'"timeout" :'
      #9#9#9#9#9'!jQuery.httpSuccess( xhr ) ?'
      #9#9#9#9#9#9'"error" :'
      #9#9#9#9#9#9's.ifModified && jQuery.httpNotModified( xhr, s.url ) ?'
      #9#9#9#9#9#9#9'"notmodified" :'
      #9#9#9#9#9#9#9'"success";'
      ''
      #9#9#9#9'var errMsg;'
      ''
      #9#9#9#9'if ( status === "success" ) {'
      #9#9#9#9#9'// Watch for, and catch, XML document parse errors'
      #9#9#9#9#9'try {'
      
        #9#9#9#9#9#9'// process the data (runs the xml through httpData regardl' +
        'ess of callback)'
      #9#9#9#9#9#9'data = jQuery.httpData( xhr, s.dataType, s );'
      #9#9#9#9#9'} catch( parserError ) {'
      #9#9#9#9#9#9'status = "parsererror";'
      #9#9#9#9#9#9'errMsg = parserError;'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Make sure that the request was successful or notmodified'
      #9#9#9#9'if ( status === "success" || status === "notmodified" ) {'
      #9#9#9#9#9'// JSONP handles its own success callback'
      #9#9#9#9#9'if ( !jsonp ) {'
      #9#9#9#9#9#9'jQuery.handleSuccess( s, xhr, status, data );'
      #9#9#9#9#9'}'
      #9#9#9#9'} else {'
      #9#9#9#9#9'jQuery.handleError( s, xhr, status, errMsg );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Fire the complete handlers'
      #9#9#9#9'if ( !jsonp ) {'
      #9#9#9#9#9'jQuery.handleComplete( s, xhr, status, data );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( isTimeout === "timeout" ) {'
      #9#9#9#9#9'xhr.abort();'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Stop memory leaks'
      #9#9#9#9'if ( s.async ) {'
      #9#9#9#9#9'xhr = null;'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'};'
      ''
      
        #9#9'// Override the abort handler, if we can (IE 6 doesn'#39't allow i' +
        't, but that'#39's OK)'
      #9#9'// Opera doesn'#39't fire onreadystatechange at all on abort'
      #9#9'try {'
      #9#9#9'var oldAbort = xhr.abort;'
      #9#9#9'xhr.abort = function() {'
      #9#9#9#9'if ( xhr ) {'
      #9#9#9#9#9'// oldAbort has no call property in IE7 so'
      #9#9#9#9#9'// just do it this way, which works in all'
      #9#9#9#9#9'// browsers'
      #9#9#9#9#9'Function.prototype.call.call( oldAbort, xhr );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'onreadystatechange( "abort" );'
      #9#9#9'};'
      #9#9'} catch( abortError ) {}'
      ''
      #9#9'// Timeout checker'
      #9#9'if ( s.async && s.timeout > 0 ) {'
      #9#9#9'setTimeout(function() {'
      #9#9#9#9'// Check to see if the request is still happening'
      #9#9#9#9'if ( xhr && !requestDone ) {'
      #9#9#9#9#9'onreadystatechange( "timeout" );'
      #9#9#9#9'}'
      #9#9#9'}, s.timeout);'
      #9#9'}'
      ''
      #9#9'// Send the data'
      #9#9'try {'
      #9#9#9'xhr.send( noContent || s.data == null ? null : s.data );'
      ''
      #9#9'} catch( sendError ) {'
      #9#9#9'jQuery.handleError( s, xhr, null, sendError );'
      ''
      #9#9#9'// Fire the complete handlers'
      #9#9#9'jQuery.handleComplete( s, xhr, status, data );'
      #9#9'}'
      ''
      #9#9'// firefox 1.5 doesn'#39't fire statechange for sync requests'
      #9#9'if ( !s.async ) {'
      #9#9#9'onreadystatechange();'
      #9#9'}'
      ''
      #9#9'// return XMLHttpRequest to allow aborting the request etc.'
      #9#9'return xhr;'
      #9'},'
      ''
      #9'// Serialize an array of form elements or a set of'
      #9'// key/values into a query string'
      #9'param: function( a, traditional ) {'
      #9#9'var s = [],'
      #9#9#9'add = function( key, value ) {'
      #9#9#9#9'// If value is a function, invoke it and return its value'
      #9#9#9#9'value = jQuery.isFunction(value) ? value() : value;'
      
        #9#9#9#9's[ s.length ] = encodeURIComponent(key) + "=" + encodeURICom' +
        'ponent(value);'
      #9#9#9'};'
      #9#9
      #9#9'// Set traditional to true for jQuery <= 1.3.2 behavior.'
      #9#9'if ( traditional === undefined ) {'
      #9#9#9'traditional = jQuery.ajaxSettings.traditional;'
      #9#9'}'
      #9#9
      
        #9#9'// If an array was passed in, assume that it is an array of fo' +
        'rm elements.'
      #9#9'if ( jQuery.isArray(a) || a.jquery ) {'
      #9#9#9'// Serialize the form elements'
      #9#9#9'jQuery.each( a, function() {'
      #9#9#9#9'add( this.name, this.value );'
      #9#9#9'});'
      #9#9#9
      #9#9'} else {'
      
        #9#9#9'// If traditional, encode the "old" way (the way 1.3.2 or old' +
        'er'
      #9#9#9'// did it), otherwise encode params recursively.'
      #9#9#9'for ( var prefix in a ) {'
      #9#9#9#9'buildParams( prefix, a[prefix], traditional, add );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'// Return the resulting serialization'
      #9#9'return s.join("&").replace(r20, "+");'
      #9'}'
      '});'
      ''
      'function buildParams( prefix, obj, traditional, add ) {'
      #9'if ( jQuery.isArray(obj) && obj.length ) {'
      #9#9'// Serialize array item.'
      #9#9'jQuery.each( obj, function( i, v ) {'
      #9#9#9'if ( traditional || rbracket.test( prefix ) ) {'
      #9#9#9#9'// Treat each array item as a scalar.'
      #9#9#9#9'add( prefix, v );'
      ''
      #9#9#9'} else {'
      #9#9#9#9'// If array item is non-scalar (array or object), encode its'
      
        #9#9#9#9'// numeric index to resolve deserialization ambiguity issues' +
        '.'
      #9#9#9#9'// Note that rack (as of 1.0.0) can'#39't currently deserialize'
      #9#9#9#9'// nested arrays properly, and attempting to do so may cause'
      #9#9#9#9'// a server error. Possible fixes are to modify rack'#39's'
      #9#9#9#9'// deserialization algorithm or to provide an option or flag'
      #9#9#9#9'// to force array serialization to be shallow.'
      
        #9#9#9#9'buildParams( prefix + "[" + ( typeof v === "object" || jQuer' +
        'y.isArray(v) ? i : "" ) + "]", v, traditional, add );'
      #9#9#9'}'
      #9#9'});'
      #9#9#9
      
        #9'} else if ( !traditional && obj != null && typeof obj === "obje' +
        'ct" ) {'
      #9#9'if ( jQuery.isEmptyObject( obj ) ) {'
      #9#9#9'add( prefix, "" );'
      ''
      #9#9'// Serialize object item.'
      #9#9'} else {'
      #9#9#9'jQuery.each( obj, function( k, v ) {'
      #9#9#9#9'buildParams( prefix + "[" + k + "]", v, traditional, add );'
      #9#9#9'});'
      #9#9'}'
      #9#9#9#9#9
      #9'} else {'
      #9#9'// Serialize scalar item.'
      #9#9'add( prefix, obj );'
      #9'}'
      '}'
      ''
      '// This is still on the jQuery object... for now'
      '// Want to move this to jQuery.ajax some day'
      'jQuery.extend({'
      ''
      #9'// Counter for holding the number of active queries'
      #9'active: 0,'
      ''
      #9'// Last-Modified header cache for next request'
      #9'lastModified: {},'
      #9'etag: {},'
      ''
      #9'handleError: function( s, xhr, status, e ) {'
      #9#9'// If a local callback was specified, fire it'
      #9#9'if ( s.error ) {'
      #9#9#9's.error.call( s.context, xhr, status, e );'
      #9#9'}'
      ''
      #9#9'// Fire the global callback'
      #9#9'if ( s.global ) {'
      #9#9#9'jQuery.triggerGlobal( s, "ajaxError", [xhr, s, e] );'
      #9#9'}'
      #9'},'
      ''
      #9'handleSuccess: function( s, xhr, status, data ) {'
      
        #9#9'// If a local callback was specified, fire it and pass it the ' +
        'data'
      #9#9'if ( s.success ) {'
      #9#9#9's.success.call( s.context, data, status, xhr );'
      #9#9'}'
      ''
      #9#9'// Fire the global callback'
      #9#9'if ( s.global ) {'
      #9#9#9'jQuery.triggerGlobal( s, "ajaxSuccess", [xhr, s] );'
      #9#9'}'
      #9'},'
      ''
      #9'handleComplete: function( s, xhr, status ) {'
      #9#9'// Process result'
      #9#9'if ( s.complete ) {'
      #9#9#9's.complete.call( s.context, xhr, status );'
      #9#9'}'
      ''
      #9#9'// The request was completed'
      #9#9'if ( s.global ) {'
      #9#9#9'jQuery.triggerGlobal( s, "ajaxComplete", [xhr, s] );'
      #9#9'}'
      ''
      #9#9'// Handle the global AJAX counter'
      #9#9'if ( s.global && jQuery.active-- === 1 ) {'
      #9#9#9'jQuery.event.trigger( "ajaxStop" );'
      #9#9'}'
      #9'},'
      #9#9
      #9'triggerGlobal: function( s, type, args ) {'
      
        #9#9'(s.context && s.context.url == null ? jQuery(s.context) : jQue' +
        'ry.event).trigger(type, args);'
      #9'},'
      ''
      #9'// Determines if an XMLHttpRequest was successful or not'
      #9'httpSuccess: function( xhr ) {'
      #9#9'try {'
      
        #9#9#9'// IE error sometimes returns 1223 when it should be 204 so t' +
        'reat it as success, see #1450'
      #9#9#9'return !xhr.status && location.protocol === "file:" ||'
      #9#9#9#9'xhr.status >= 200 && xhr.status < 300 ||'
      #9#9#9#9'xhr.status === 304 || xhr.status === 1223;'
      #9#9'} catch(e) {}'
      ''
      #9#9'return false;'
      #9'},'
      ''
      #9'// Determines if an XMLHttpRequest returns NotModified'
      #9'httpNotModified: function( xhr, url ) {'
      #9#9'var lastModified = xhr.getResponseHeader("Last-Modified"),'
      #9#9#9'etag = xhr.getResponseHeader("Etag");'
      ''
      #9#9'if ( lastModified ) {'
      #9#9#9'jQuery.lastModified[url] = lastModified;'
      #9#9'}'
      ''
      #9#9'if ( etag ) {'
      #9#9#9'jQuery.etag[url] = etag;'
      #9#9'}'
      ''
      #9#9'return xhr.status === 304;'
      #9'},'
      ''
      #9'httpData: function( xhr, type, s ) {'
      #9#9'var ct = xhr.getResponseHeader("content-type") || "",'
      #9#9#9'xml = type === "xml" || !type && ct.indexOf("xml") >= 0,'
      #9#9#9'data = xml ? xhr.responseXML : xhr.responseText;'
      ''
      
        #9#9'if ( xml && data.documentElement.nodeName === "parsererror" ) ' +
        '{'
      #9#9#9'jQuery.error( "parsererror" );'
      #9#9'}'
      ''
      #9#9'// Allow a pre-filtering function to sanitize the response'
      #9#9'// s is checked to keep backwards compatibility'
      #9#9'if ( s && s.dataFilter ) {'
      #9#9#9'data = s.dataFilter( data, type );'
      #9#9'}'
      ''
      #9#9'// The filter can actually parse the response'
      #9#9'if ( typeof data === "string" ) {'
      #9#9#9'// Get the JavaScript object, if JSON is used.'
      #9#9#9'if ( type === "json" || !type && ct.indexOf("json") >= 0 ) {'
      #9#9#9#9'data = jQuery.parseJSON( data );'
      ''
      #9#9#9'// If the type is "script", eval it in global context'
      
        #9#9#9'} else if ( type === "script" || !type && ct.indexOf("javascr' +
        'ipt") >= 0 ) {'
      #9#9#9#9'jQuery.globalEval( data );'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'return data;'
      #9'}'
      ''
      '});'
      ''
      '/*'
      ' * Create the request object; Microsoft failed to properly'
      
        ' * implement the XMLHttpRequest in IE7 (can'#39't request local file' +
        's),'
      ' * so we use the ActiveXObject when it is available'
      ' * Additionally XMLHttpRequest can be disabled in IE7/IE8 so'
      ' * we need a fallback.'
      ' */'
      'if ( window.ActiveXObject ) {'
      #9'jQuery.ajaxSettings.xhr = function() {'
      #9#9'if ( window.location.protocol !== "file:" ) {'
      #9#9#9'try {'
      #9#9#9#9'return new window.XMLHttpRequest();'
      #9#9#9'} catch(xhrError) {}'
      #9#9'}'
      ''
      #9#9'try {'
      #9#9#9'return new window.ActiveXObject("Microsoft.XMLHTTP");'
      #9#9'} catch(activeError) {}'
      #9'};'
      '}'
      ''
      '// Does this browser support XHR requests?'
      'jQuery.support.ajax = !!jQuery.ajaxSettings.xhr();'
      ''
      ''
      ''
      ''
      'var elemdisplay = {},'
      #9'rfxtypes = /^(?:toggle|show|hide)$/,'
      #9'rfxnum = /^([+\-]=)?([\d+.\-]+)(.*)$/,'
      #9'timerId,'
      #9'fxAttrs = ['
      #9#9'// height animations'
      
        #9#9'[ "height", "marginTop", "marginBottom", "paddingTop", "paddin' +
        'gBottom" ],'
      #9#9'// width animations'
      
        #9#9'[ "width", "marginLeft", "marginRight", "paddingLeft", "paddin' +
        'gRight" ],'
      #9#9'// opacity animations'
      #9#9'[ "opacity" ]'
      #9'];'
      ''
      'jQuery.fn.extend({'
      #9'show: function( speed, easing, callback ) {'
      #9#9'var elem, display;'
      ''
      #9#9'if ( speed || speed === 0 ) {'
      
        #9#9#9'return this.animate( genFx("show", 3), speed, easing, callbac' +
        'k);'
      ''
      #9#9'} else {'
      #9#9#9'for ( var i = 0, j = this.length; i < j; i++ ) {'
      #9#9#9#9'elem = this[i];'
      #9#9#9#9'display = elem.style.display;'
      ''
      
        #9#9#9#9'// Reset the inline display of this element to learn if it i' +
        's'
      #9#9#9#9'// being hidden by cascaded rules or not'
      
        #9#9#9#9'if ( !jQuery.data(elem, "olddisplay") && display === "none" ' +
        ') {'
      #9#9#9#9#9'display = elem.style.display = "";'
      #9#9#9#9'}'
      ''
      
        #9#9#9#9'// Set elements which have been overridden with display: non' +
        'e'
      #9#9#9#9'// in a stylesheet to whatever the default browser style is'
      #9#9#9#9'// for such an element'
      
        #9#9#9#9'if ( display === "" && jQuery.css( elem, "display" ) === "no' +
        'ne" ) {'
      
        #9#9#9#9#9'jQuery.data(elem, "olddisplay", defaultDisplay(elem.nodeNam' +
        'e));'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'// Set the display of most of the elements in a second loop'
      #9#9#9'// to avoid the constant reflow'
      #9#9#9'for ( i = 0; i < j; i++ ) {'
      #9#9#9#9'elem = this[i];'
      #9#9#9#9'display = elem.style.display;'
      ''
      #9#9#9#9'if ( display === "" || display === "none" ) {'
      #9#9#9#9#9'elem.style.display = jQuery.data(elem, "olddisplay") || "";'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'return this;'
      #9#9'}'
      #9'},'
      ''
      #9'hide: function( speed, easing, callback ) {'
      #9#9'if ( speed || speed === 0 ) {'
      
        #9#9#9'return this.animate( genFx("hide", 3), speed, easing, callbac' +
        'k);'
      ''
      #9#9'} else {'
      #9#9#9'for ( var i = 0, j = this.length; i < j; i++ ) {'
      #9#9#9#9'var display = jQuery.css( this[i], "display" );'
      ''
      #9#9#9#9'if ( display !== "none" ) {'
      #9#9#9#9#9'jQuery.data( this[i], "olddisplay", display );'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'// Set the display of the elements in a second loop'
      #9#9#9'// to avoid the constant reflow'
      #9#9#9'for ( i = 0; i < j; i++ ) {'
      #9#9#9#9'this[i].style.display = "none";'
      #9#9#9'}'
      ''
      #9#9#9'return this;'
      #9#9'}'
      #9'},'
      ''
      #9'// Save the old toggle function'
      #9'_toggle: jQuery.fn.toggle,'
      ''
      #9'toggle: function( fn, fn2, callback ) {'
      #9#9'var bool = typeof fn === "boolean";'
      ''
      #9#9'if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {'
      #9#9#9'this._toggle.apply( this, arguments );'
      ''
      #9#9'} else if ( fn == null || bool ) {'
      #9#9#9'this.each(function() {'
      #9#9#9#9'var state = bool ? fn : jQuery(this).is(":hidden");'
      #9#9#9#9'jQuery(this)[ state ? "show" : "hide" ]();'
      #9#9#9'});'
      ''
      #9#9'} else {'
      #9#9#9'this.animate(genFx("toggle", 3), fn, fn2, callback);'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'},'
      ''
      #9'fadeTo: function( speed, to, easing, callback ) {'
      #9#9'return this.filter(":hidden").css("opacity", 0).show().end()'
      #9#9#9#9#9'.animate({opacity: to}, speed, easing, callback);'
      #9'},'
      ''
      #9'animate: function( prop, speed, easing, callback ) {'
      #9#9'var optall = jQuery.speed(speed, easing, callback);'
      ''
      #9#9'if ( jQuery.isEmptyObject( prop ) ) {'
      #9#9#9'return this.each( optall.complete );'
      #9#9'}'
      ''
      
        #9#9'return this[ optall.queue === false ? "each" : "queue" ](funct' +
        'ion() {'
      
        #9#9#9'// XXX '#39'this'#39' does not always have a nodeName when running th' +
        'e'
      #9#9#9'// test suite'
      ''
      #9#9#9'var opt = jQuery.extend({}, optall), p,'
      #9#9#9#9'isElement = this.nodeType === 1,'
      #9#9#9#9'hidden = isElement && jQuery(this).is(":hidden"),'
      #9#9#9#9'self = this;'
      ''
      #9#9#9'for ( p in prop ) {'
      #9#9#9#9'var name = jQuery.camelCase( p );'
      ''
      #9#9#9#9'if ( p !== name ) {'
      #9#9#9#9#9'prop[ name ] = prop[ p ];'
      #9#9#9#9#9'delete prop[ p ];'
      #9#9#9#9#9'p = name;'
      #9#9#9#9'}'
      ''
      
        #9#9#9#9'if ( prop[p] === "hide" && hidden || prop[p] === "show" && !' +
        'hidden ) {'
      #9#9#9#9#9'return opt.complete.call(this);'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( isElement && ( p === "height" || p === "width" ) ) {'
      #9#9#9#9#9'// Make sure that nothing sneaks out'
      #9#9#9#9#9'// Record all 3 overflow attributes because IE does not'
      #9#9#9#9#9'// change the overflow attribute when overflowX and'
      #9#9#9#9#9'// overflowY are set to the same value'
      
        #9#9#9#9#9'opt.overflow = [ this.style.overflow, this.style.overflowX,' +
        ' this.style.overflowY ];'
      ''
      #9#9#9#9#9'// Set display property to inline-block for height/width'
      
        #9#9#9#9#9'// animations on inline elements that are having width/heig' +
        'ht'
      #9#9#9#9#9'// animated'
      #9#9#9#9#9'if ( jQuery.css( this, "display" ) === "inline" &&'
      #9#9#9#9#9#9#9'jQuery.css( this, "float" ) === "none" ) {'
      #9#9#9#9#9#9'if ( !jQuery.support.inlineBlockNeedsLayout ) {'
      #9#9#9#9#9#9#9'this.style.display = "inline-block";'
      ''
      #9#9#9#9#9#9'} else {'
      #9#9#9#9#9#9#9'var display = defaultDisplay(this.nodeName);'
      ''
      #9#9#9#9#9#9#9'// inline-level elements accept inline-block;'
      #9#9#9#9#9#9#9'// block-level elements need to be inline with layout'
      #9#9#9#9#9#9#9'if ( display === "inline" ) {'
      #9#9#9#9#9#9#9#9'this.style.display = "inline-block";'
      ''
      #9#9#9#9#9#9#9'} else {'
      #9#9#9#9#9#9#9#9'this.style.display = "inline";'
      #9#9#9#9#9#9#9#9'this.style.zoom = 1;'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9'}'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'if ( jQuery.isArray( prop[p] ) ) {'
      #9#9#9#9#9'// Create (if needed) and add to specialEasing'
      
        #9#9#9#9#9'(opt.specialEasing = opt.specialEasing || {})[p] = prop[p][' +
        '1];'
      #9#9#9#9#9'prop[p] = prop[p][0];'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'if ( opt.overflow != null ) {'
      #9#9#9#9'this.style.overflow = "hidden";'
      #9#9#9'}'
      ''
      #9#9#9'opt.curAnim = jQuery.extend({}, prop);'
      ''
      #9#9#9'jQuery.each( prop, function( name, val ) {'
      #9#9#9#9'var e = new jQuery.fx( self, opt, name );'
      ''
      #9#9#9#9'if ( rfxtypes.test(val) ) {'
      
        #9#9#9#9#9'e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( pro' +
        'p );'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'var parts = rfxnum.exec(val),'
      #9#9#9#9#9#9'start = e.cur() || 0;'
      ''
      #9#9#9#9#9'if ( parts ) {'
      #9#9#9#9#9#9'var end = parseFloat( parts[2] ),'
      #9#9#9#9#9#9#9'unit = parts[3] || "px";'
      ''
      #9#9#9#9#9#9'// We need to compute starting value'
      #9#9#9#9#9#9'if ( unit !== "px" ) {'
      #9#9#9#9#9#9#9'jQuery.style( self, name, (end || 1) + unit);'
      #9#9#9#9#9#9#9'start = ((end || 1) / e.cur()) * start;'
      #9#9#9#9#9#9#9'jQuery.style( self, name, start + unit);'
      #9#9#9#9#9#9'}'
      ''
      
        #9#9#9#9#9#9'// If a +=/-= token was provided, we'#39're doing a relative a' +
        'nimation'
      #9#9#9#9#9#9'if ( parts[1] ) {'
      #9#9#9#9#9#9#9'end = ((parts[1] === "-=" ? -1 : 1) * end) + start;'
      #9#9#9#9#9#9'}'
      ''
      #9#9#9#9#9#9'e.custom( start, end, unit );'
      ''
      #9#9#9#9#9'} else {'
      #9#9#9#9#9#9'e.custom( start, val, "" );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      #9#9#9'});'
      ''
      #9#9#9'// For JS strict compliance'
      #9#9#9'return true;'
      #9#9'});'
      #9'},'
      ''
      #9'stop: function( clearQueue, gotoEnd ) {'
      #9#9'var timers = jQuery.timers;'
      ''
      #9#9'if ( clearQueue ) {'
      #9#9#9'this.queue([]);'
      #9#9'}'
      ''
      #9#9'this.each(function() {'
      
        #9#9#9'// go in reverse order so anything added to the queue during ' +
        'the loop is ignored'
      #9#9#9'for ( var i = timers.length - 1; i >= 0; i-- ) {'
      #9#9#9#9'if ( timers[i].elem === this ) {'
      #9#9#9#9#9'if (gotoEnd) {'
      #9#9#9#9#9#9'// force the next step to be the last'
      #9#9#9#9#9#9'timers[i](true);'
      #9#9#9#9#9'}'
      ''
      #9#9#9#9#9'timers.splice(i, 1);'
      #9#9#9#9'}'
      #9#9#9'}'
      #9#9'});'
      ''
      #9#9'// start the next in the queue if the last step wasn'#39't forced'
      #9#9'if ( !gotoEnd ) {'
      #9#9#9'this.dequeue();'
      #9#9'}'
      ''
      #9#9'return this;'
      #9'}'
      ''
      '});'
      ''
      'function genFx( type, num ) {'
      #9'var obj = {};'
      ''
      
        #9'jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), fu' +
        'nction() {'
      #9#9'obj[ this ] = type;'
      #9'});'
      ''
      #9'return obj;'
      '}'
      ''
      '// Generate shortcuts for custom animations'
      'jQuery.each({'
      #9'slideDown: genFx("show", 1),'
      #9'slideUp: genFx("hide", 1),'
      #9'slideToggle: genFx("toggle", 1),'
      #9'fadeIn: { opacity: "show" },'
      #9'fadeOut: { opacity: "hide" },'
      #9'fadeToggle: { opacity: "toggle" }'
      '}, function( name, props ) {'
      #9'jQuery.fn[ name ] = function( speed, easing, callback ) {'
      #9#9'return this.animate( props, speed, easing, callback );'
      #9'};'
      '});'
      ''
      'jQuery.extend({'
      #9'speed: function( speed, easing, fn ) {'
      
        #9#9'var opt = speed && typeof speed === "object" ? jQuery.extend({' +
        '}, speed) : {'
      #9#9#9'complete: fn || !fn && easing ||'
      #9#9#9#9'jQuery.isFunction( speed ) && speed,'
      #9#9#9'duration: speed,'
      
        #9#9#9'easing: fn && easing || easing && !jQuery.isFunction(easing) ' +
        '&& easing'
      #9#9'};'
      ''
      
        #9#9'opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "nu' +
        'mber" ? opt.duration :'
      
        #9#9#9'opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.durat' +
        'ion] : jQuery.fx.speeds._default;'
      ''
      #9#9'// Queueing'
      #9#9'opt.old = opt.complete;'
      #9#9'opt.complete = function() {'
      #9#9#9'if ( opt.queue !== false ) {'
      #9#9#9#9'jQuery(this).dequeue();'
      #9#9#9'}'
      #9#9#9'if ( jQuery.isFunction( opt.old ) ) {'
      #9#9#9#9'opt.old.call( this );'
      #9#9#9'}'
      #9#9'};'
      ''
      #9#9'return opt;'
      #9'},'
      ''
      #9'easing: {'
      #9#9'linear: function( p, n, firstNum, diff ) {'
      #9#9#9'return firstNum + diff * p;'
      #9#9'},'
      #9#9'swing: function( p, n, firstNum, diff ) {'
      #9#9#9'return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;'
      #9#9'}'
      #9'},'
      ''
      #9'timers: [],'
      ''
      #9'fx: function( elem, options, prop ) {'
      #9#9'this.options = options;'
      #9#9'this.elem = elem;'
      #9#9'this.prop = prop;'
      ''
      #9#9'if ( !options.orig ) {'
      #9#9#9'options.orig = {};'
      #9#9'}'
      #9'}'
      ''
      '});'
      ''
      'jQuery.fx.prototype = {'
      #9'// Simple function for setting a style value'
      #9'update: function() {'
      #9#9'if ( this.options.step ) {'
      #9#9#9'this.options.step.call( this.elem, this.now, this );'
      #9#9'}'
      ''
      
        #9#9'(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this )' +
        ';'
      #9'},'
      ''
      #9'// Get the current size'
      #9'cur: function() {'
      
        #9#9'if ( this.elem[this.prop] != null && (!this.elem.style || this' +
        '.elem.style[this.prop] == null) ) {'
      #9#9#9'return this.elem[ this.prop ];'
      #9#9'}'
      ''
      #9#9'var r = parseFloat( jQuery.css( this.elem, this.prop ) );'
      #9#9'return r && r > -10000 ? r : 0;'
      #9'},'
      ''
      #9'// Start an animation from one number to another'
      #9'custom: function( from, to, unit ) {'
      #9#9'var self = this,'
      #9#9#9'fx = jQuery.fx;'
      ''
      #9#9'this.startTime = jQuery.now();'
      #9#9'this.start = from;'
      #9#9'this.end = to;'
      #9#9'this.unit = unit || this.unit || "px";'
      #9#9'this.now = this.start;'
      #9#9'this.pos = this.state = 0;'
      ''
      #9#9'function t( gotoEnd ) {'
      #9#9#9'return self.step(gotoEnd);'
      #9#9'}'
      ''
      #9#9't.elem = this.elem;'
      ''
      #9#9'if ( t() && jQuery.timers.push(t) && !timerId ) {'
      #9#9#9'timerId = setInterval(fx.tick, fx.interval);'
      #9#9'}'
      #9'},'
      ''
      #9'// Simple '#39'show'#39' function'
      #9'show: function() {'
      
        #9#9'// Remember where we started, so that we can go back to it lat' +
        'er'
      
        #9#9'this.options.orig[this.prop] = jQuery.style( this.elem, this.p' +
        'rop );'
      #9#9'this.options.show = true;'
      ''
      #9#9'// Begin the animation'
      
        #9#9'// Make sure that we start at a small width/height to avoid an' +
        'y'
      #9#9'// flash of content'
      
        #9#9'this.custom(this.prop === "width" || this.prop === "height" ? ' +
        '1 : 0, this.cur());'
      ''
      #9#9'// Start by showing the element'
      #9#9'jQuery( this.elem ).show();'
      #9'},'
      ''
      #9'// Simple '#39'hide'#39' function'
      #9'hide: function() {'
      
        #9#9'// Remember where we started, so that we can go back to it lat' +
        'er'
      
        #9#9'this.options.orig[this.prop] = jQuery.style( this.elem, this.p' +
        'rop );'
      #9#9'this.options.hide = true;'
      ''
      #9#9'// Begin the animation'
      #9#9'this.custom(this.cur(), 0);'
      #9'},'
      ''
      #9'// Each step of an animation'
      #9'step: function( gotoEnd ) {'
      #9#9'var t = jQuery.now(), done = true;'
      ''
      
        #9#9'if ( gotoEnd || t >= this.options.duration + this.startTime ) ' +
        '{'
      #9#9#9'this.now = this.end;'
      #9#9#9'this.pos = this.state = 1;'
      #9#9#9'this.update();'
      ''
      #9#9#9'this.options.curAnim[ this.prop ] = true;'
      ''
      #9#9#9'for ( var i in this.options.curAnim ) {'
      #9#9#9#9'if ( this.options.curAnim[i] !== true ) {'
      #9#9#9#9#9'done = false;'
      #9#9#9#9'}'
      #9#9#9'}'
      ''
      #9#9#9'if ( done ) {'
      #9#9#9#9'// Reset the overflow'
      
        #9#9#9#9'if ( this.options.overflow != null && !jQuery.support.shrink' +
        'WrapBlocks ) {'
      #9#9#9#9#9'var elem = this.elem,'
      #9#9#9#9#9#9'options = this.options;'
      ''
      #9#9#9#9#9'jQuery.each( [ "", "X", "Y" ], function (index, value) {'
      
        #9#9#9#9#9#9'elem.style[ "overflow" + value ] = options.overflow[index]' +
        ';'
      #9#9#9#9#9'} );'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Hide the element if the "hide" operation was done'
      #9#9#9#9'if ( this.options.hide ) {'
      #9#9#9#9#9'jQuery(this.elem).hide();'
      #9#9#9#9'}'
      ''
      
        #9#9#9#9'// Reset the properties, if the item has been hidden or show' +
        'n'
      #9#9#9#9'if ( this.options.hide || this.options.show ) {'
      #9#9#9#9#9'for ( var p in this.options.curAnim ) {'
      #9#9#9#9#9#9'jQuery.style( this.elem, p, this.options.orig[p] );'
      #9#9#9#9#9'}'
      #9#9#9#9'}'
      ''
      #9#9#9#9'// Execute the complete function'
      #9#9#9#9'this.options.complete.call( this.elem );'
      #9#9#9'}'
      ''
      #9#9#9'return false;'
      ''
      #9#9'} else {'
      #9#9#9'var n = t - this.startTime;'
      #9#9#9'this.state = n / this.options.duration;'
      ''
      #9#9#9'// Perform the easing function, defaults to swing'
      
        #9#9#9'var specialEasing = this.options.specialEasing && this.option' +
        's.specialEasing[this.prop];'
      
        #9#9#9'var defaultEasing = this.options.easing || (jQuery.easing.swi' +
        'ng ? "swing" : "linear");'
      
        #9#9#9'this.pos = jQuery.easing[specialEasing || defaultEasing](this' +
        '.state, n, 0, 1, this.options.duration);'
      #9#9#9'this.now = this.start + ((this.end - this.start) * this.pos);'
      ''
      #9#9#9'// Perform the next step of the animation'
      #9#9#9'this.update();'
      #9#9'}'
      ''
      #9#9'return true;'
      #9'}'
      '};'
      ''
      'jQuery.extend( jQuery.fx, {'
      #9'tick: function() {'
      #9#9'var timers = jQuery.timers;'
      ''
      #9#9'for ( var i = 0; i < timers.length; i++ ) {'
      #9#9#9'if ( !timers[i]() ) {'
      #9#9#9#9'timers.splice(i--, 1);'
      #9#9#9'}'
      #9#9'}'
      ''
      #9#9'if ( !timers.length ) {'
      #9#9#9'jQuery.fx.stop();'
      #9#9'}'
      #9'},'
      ''
      #9'interval: 13,'
      ''
      #9'stop: function() {'
      #9#9'clearInterval( timerId );'
      #9#9'timerId = null;'
      #9'},'
      ''
      #9'speeds: {'
      #9#9'slow: 600,'
      #9#9'fast: 200,'
      #9#9'// Default speed'
      #9#9'_default: 400'
      #9'},'
      ''
      #9'step: {'
      #9#9'opacity: function( fx ) {'
      #9#9#9'jQuery.style( fx.elem, "opacity", fx.now );'
      #9#9'},'
      ''
      #9#9'_default: function( fx ) {'
      #9#9#9'if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {'
      
        #9#9#9#9'fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop =' +
        '== "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;'
      #9#9#9'} else {'
      #9#9#9#9'fx.elem[ fx.prop ] = fx.now;'
      #9#9#9'}'
      #9#9'}'
      #9'}'
      '});'
      ''
      'if ( jQuery.expr && jQuery.expr.filters ) {'
      #9'jQuery.expr.filters.animated = function( elem ) {'
      #9#9'return jQuery.grep(jQuery.timers, function( fn ) {'
      #9#9#9'return elem === fn.elem;'
      #9#9'}).length;'
      #9'};'
      '}'
      ''
      'function defaultDisplay( nodeName ) {'
      #9'if ( !elemdisplay[ nodeName ] ) {'
      #9#9'var elem = jQuery("<" + nodeName + ">").appendTo("body"),'
      #9#9#9'display = elem.css("display");'
      ''
      #9#9'elem.remove();'
      ''
      #9#9'if ( display === "none" || display === "" ) {'
      #9#9#9'display = "block";'
      #9#9'}'
      ''
      #9#9'elemdisplay[ nodeName ] = display;'
      #9'}'
      ''
      #9'return elemdisplay[ nodeName ];'
      '}'
      ''
      ''
      ''
      ''
      'var rtable = /^t(?:able|d|h)$/i,'
      #9'rroot = /^(?:body|html)$/i;'
      ''
      'if ( "getBoundingClientRect" in document.documentElement ) {'
      #9'jQuery.fn.offset = function( options ) {'
      #9#9'var elem = this[0], box;'
      ''
      #9#9'if ( options ) { '
      #9#9#9'return this.each(function( i ) {'
      #9#9#9#9'jQuery.offset.setOffset( this, options, i );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( !elem || !elem.ownerDocument ) {'
      #9#9#9'return null;'
      #9#9'}'
      ''
      #9#9'if ( elem === elem.ownerDocument.body ) {'
      #9#9#9'return jQuery.offset.bodyOffset( elem );'
      #9#9'}'
      ''
      #9#9'try {'
      #9#9#9'box = elem.getBoundingClientRect();'
      #9#9'} catch(e) {}'
      ''
      #9#9'var doc = elem.ownerDocument,'
      #9#9#9'docElem = doc.documentElement;'
      ''
      #9#9'// Make sure we'#39're not dealing with a disconnected DOM node'
      #9#9'if ( !box || !jQuery.contains( docElem, elem ) ) {'
      #9#9#9'return box || { top: 0, left: 0 };'
      #9#9'}'
      ''
      #9#9'var body = doc.body,'
      #9#9#9'win = getWindow(doc),'
      #9#9#9'clientTop  = docElem.clientTop  || body.clientTop  || 0,'
      #9#9#9'clientLeft = docElem.clientLeft || body.clientLeft || 0,'
      
        #9#9#9'scrollTop  = (win.pageYOffset || jQuery.support.boxModel && d' +
        'ocElem.scrollTop  || body.scrollTop ),'
      
        #9#9#9'scrollLeft = (win.pageXOffset || jQuery.support.boxModel && d' +
        'ocElem.scrollLeft || body.scrollLeft),'
      #9#9#9'top  = box.top  + scrollTop  - clientTop,'
      #9#9#9'left = box.left + scrollLeft - clientLeft;'
      ''
      #9#9'return { top: top, left: left };'
      #9'};'
      ''
      '} else {'
      #9'jQuery.fn.offset = function( options ) {'
      #9#9'var elem = this[0];'
      ''
      #9#9'if ( options ) { '
      #9#9#9'return this.each(function( i ) {'
      #9#9#9#9'jQuery.offset.setOffset( this, options, i );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( !elem || !elem.ownerDocument ) {'
      #9#9#9'return null;'
      #9#9'}'
      ''
      #9#9'if ( elem === elem.ownerDocument.body ) {'
      #9#9#9'return jQuery.offset.bodyOffset( elem );'
      #9#9'}'
      ''
      #9#9'jQuery.offset.initialize();'
      ''
      #9#9'var computedStyle,'
      #9#9#9'offsetParent = elem.offsetParent,'
      #9#9#9'prevOffsetParent = elem,'
      #9#9#9'doc = elem.ownerDocument,'
      #9#9#9'docElem = doc.documentElement,'
      #9#9#9'body = doc.body,'
      #9#9#9'defaultView = doc.defaultView,'
      
        #9#9#9'prevComputedStyle = defaultView ? defaultView.getComputedStyl' +
        'e( elem, null ) : elem.currentStyle,'
      #9#9#9'top = elem.offsetTop,'
      #9#9#9'left = elem.offsetLeft;'
      ''
      
        #9#9'while ( (elem = elem.parentNode) && elem !== body && elem !== ' +
        'docElem ) {'
      
        #9#9#9'if ( jQuery.offset.supportsFixedPosition && prevComputedStyle' +
        '.position === "fixed" ) {'
      #9#9#9#9'break;'
      #9#9#9'}'
      ''
      
        #9#9#9'computedStyle = defaultView ? defaultView.getComputedStyle(el' +
        'em, null) : elem.currentStyle;'
      #9#9#9'top  -= elem.scrollTop;'
      #9#9#9'left -= elem.scrollLeft;'
      ''
      #9#9#9'if ( elem === offsetParent ) {'
      #9#9#9#9'top  += elem.offsetTop;'
      #9#9#9#9'left += elem.offsetLeft;'
      ''
      
        #9#9#9#9'if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesA' +
        'ddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {'
      #9#9#9#9#9'top  += parseFloat( computedStyle.borderTopWidth  ) || 0;'
      #9#9#9#9#9'left += parseFloat( computedStyle.borderLeftWidth ) || 0;'
      #9#9#9#9'}'
      ''
      #9#9#9#9'prevOffsetParent = offsetParent;'
      #9#9#9#9'offsetParent = elem.offsetParent;'
      #9#9#9'}'
      ''
      
        #9#9#9'if ( jQuery.offset.subtractsBorderForOverflowNotVisible && co' +
        'mputedStyle.overflow !== "visible" ) {'
      #9#9#9#9'top  += parseFloat( computedStyle.borderTopWidth  ) || 0;'
      #9#9#9#9'left += parseFloat( computedStyle.borderLeftWidth ) || 0;'
      #9#9#9'}'
      ''
      #9#9#9'prevComputedStyle = computedStyle;'
      #9#9'}'
      ''
      
        #9#9'if ( prevComputedStyle.position === "relative" || prevComputed' +
        'Style.position === "static" ) {'
      #9#9#9'top  += body.offsetTop;'
      #9#9#9'left += body.offsetLeft;'
      #9#9'}'
      ''
      
        #9#9'if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.' +
        'position === "fixed" ) {'
      #9#9#9'top  += Math.max( docElem.scrollTop, body.scrollTop );'
      #9#9#9'left += Math.max( docElem.scrollLeft, body.scrollLeft );'
      #9#9'}'
      ''
      #9#9'return { top: top, left: left };'
      #9'};'
      '}'
      ''
      'jQuery.offset = {'
      #9'initialize: function() {'
      
        #9#9'var body = document.body, container = document.createElement("' +
        'div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat' +
        '( jQuery.css(body, "marginTop") ) || 0,'
      
        #9#9#9'html = "<div style='#39'position:absolute;top:0;left:0;margin:0;b' +
        'order:5px solid #000;padding:0;width:1px;height:1px;'#39'><div></div' +
        '></div><table style='#39'position:absolute;top:0;left:0;margin:0;bor' +
        'der:5px solid #000;padding:0;width:1px;height:1px;'#39' cellpadding=' +
        #39'0'#39' cellspacing='#39'0'#39'><tr><td></td></tr></table>";'
      ''
      
        #9#9'jQuery.extend( container.style, { position: "absolute", top: 0' +
        ', left: 0, margin: 0, border: 0, width: "1px", height: "1px", vi' +
        'sibility: "hidden" } );'
      ''
      #9#9'container.innerHTML = html;'
      #9#9'body.insertBefore( container, body.firstChild );'
      #9#9'innerDiv = container.firstChild;'
      #9#9'checkDiv = innerDiv.firstChild;'
      #9#9'td = innerDiv.nextSibling.firstChild.firstChild;'
      ''
      #9#9'this.doesNotAddBorder = (checkDiv.offsetTop !== 5);'
      #9#9'this.doesAddBorderForTableAndCells = (td.offsetTop === 5);'
      ''
      #9#9'checkDiv.style.position = "fixed";'
      #9#9'checkDiv.style.top = "20px";'
      ''
      #9#9'// safari subtracts parent border width here which is 5px'
      
        #9#9'this.supportsFixedPosition = (checkDiv.offsetTop === 20 || che' +
        'ckDiv.offsetTop === 15);'
      #9#9'checkDiv.style.position = checkDiv.style.top = "";'
      ''
      #9#9'innerDiv.style.overflow = "hidden";'
      #9#9'innerDiv.style.position = "relative";'
      ''
      
        #9#9'this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTo' +
        'p === -5);'
      ''
      
        #9#9'this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bo' +
        'dyMarginTop);'
      ''
      #9#9'body.removeChild( container );'
      #9#9'body = container = innerDiv = checkDiv = table = td = null;'
      #9#9'jQuery.offset.initialize = jQuery.noop;'
      #9'},'
      ''
      #9'bodyOffset: function( body ) {'
      #9#9'var top = body.offsetTop,'
      #9#9#9'left = body.offsetLeft;'
      ''
      #9#9'jQuery.offset.initialize();'
      ''
      #9#9'if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {'
      #9#9#9'top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;'
      #9#9#9'left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;'
      #9#9'}'
      ''
      #9#9'return { top: top, left: left };'
      #9'},'
      #9
      #9'setOffset: function( elem, options, i ) {'
      #9#9'var position = jQuery.css( elem, "position" );'
      ''
      
        #9#9'// set position first, in-case top/left are set even on static' +
        ' elem'
      #9#9'if ( position === "static" ) {'
      #9#9#9'elem.style.position = "relative";'
      #9#9'}'
      ''
      #9#9'var curElem = jQuery( elem ),'
      #9#9#9'curOffset = curElem.offset(),'
      #9#9#9'curCSSTop = jQuery.css( elem, "top" ),'
      #9#9#9'curCSSLeft = jQuery.css( elem, "left" ),'
      
        #9#9#9'calculatePosition = (position === "absolute" && jQuery.inArra' +
        'y('#39'auto'#39', [curCSSTop, curCSSLeft]) > -1),'
      #9#9#9'props = {}, curPosition = {}, curTop, curLeft;'
      ''
      
        #9#9'// need to be able to calculate position if either top or left' +
        ' is auto and position is absolute'
      #9#9'if ( calculatePosition ) {'
      #9#9#9'curPosition = curElem.position();'
      #9#9'}'
      ''
      
        #9#9'curTop  = calculatePosition ? curPosition.top  : parseInt( cur' +
        'CSSTop,  10 ) || 0;'
      
        #9#9'curLeft = calculatePosition ? curPosition.left : parseInt( cur' +
        'CSSLeft, 10 ) || 0;'
      ''
      #9#9'if ( jQuery.isFunction( options ) ) {'
      #9#9#9'options = options.call( elem, i, curOffset );'
      #9#9'}'
      ''
      #9#9'if (options.top != null) {'
      #9#9#9'props.top = (options.top - curOffset.top) + curTop;'
      #9#9'}'
      #9#9'if (options.left != null) {'
      #9#9#9'props.left = (options.left - curOffset.left) + curLeft;'
      #9#9'}'
      #9#9
      #9#9'if ( "using" in options ) {'
      #9#9#9'options.using.call( elem, props );'
      #9#9'} else {'
      #9#9#9'curElem.css( props );'
      #9#9'}'
      #9'}'
      '};'
      ''
      ''
      'jQuery.fn.extend({'
      #9'position: function() {'
      #9#9'if ( !this[0] ) {'
      #9#9#9'return null;'
      #9#9'}'
      ''
      #9#9'var elem = this[0],'
      ''
      #9#9'// Get *real* offsetParent'
      #9#9'offsetParent = this.offsetParent(),'
      ''
      #9#9'// Get correct offsets'
      #9#9'offset       = this.offset(),'
      
        #9#9'parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0' +
        ', left: 0 } : offsetParent.offset();'
      ''
      #9#9'// Subtract element margins'
      
        #9#9'// note: when an element has margin: auto the offsetLeft and m' +
        'arginLeft'
      
        #9#9'// are the same in Safari causing offset.left to incorrectly b' +
        'e 0'
      
        #9#9'offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || ' +
        '0;'
      
        #9#9'offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) ||' +
        ' 0;'
      ''
      #9#9'// Add offsetParent borders'
      
        #9#9'parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "' +
        'borderTopWidth") ) || 0;'
      
        #9#9'parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "' +
        'borderLeftWidth") ) || 0;'
      ''
      #9#9'// Subtract the two offsets'
      #9#9'return {'
      #9#9#9'top:  offset.top  - parentOffset.top,'
      #9#9#9'left: offset.left - parentOffset.left'
      #9#9'};'
      #9'},'
      ''
      #9'offsetParent: function() {'
      #9#9'return this.map(function() {'
      #9#9#9'var offsetParent = this.offsetParent || document.body;'
      
        #9#9#9'while ( offsetParent && (!rroot.test(offsetParent.nodeName) &' +
        '& jQuery.css(offsetParent, "position") === "static") ) {'
      #9#9#9#9'offsetParent = offsetParent.offsetParent;'
      #9#9#9'}'
      #9#9#9'return offsetParent;'
      #9#9'});'
      #9'}'
      '});'
      ''
      ''
      '// Create scrollLeft and scrollTop methods'
      'jQuery.each( ["Left", "Top"], function( i, name ) {'
      #9'var method = "scroll" + name;'
      ''
      #9'jQuery.fn[ method ] = function(val) {'
      #9#9'var elem = this[0], win;'
      #9#9
      #9#9'if ( !elem ) {'
      #9#9#9'return null;'
      #9#9'}'
      ''
      #9#9'if ( val !== undefined ) {'
      #9#9#9'// Set the scroll offset'
      #9#9#9'return this.each(function() {'
      #9#9#9#9'win = getWindow( this );'
      ''
      #9#9#9#9'if ( win ) {'
      #9#9#9#9#9'win.scrollTo('
      #9#9#9#9#9#9'!i ? val : jQuery(win).scrollLeft(),'
      #9#9#9#9#9#9' i ? val : jQuery(win).scrollTop()'
      #9#9#9#9#9');'
      ''
      #9#9#9#9'} else {'
      #9#9#9#9#9'this[ method ] = val;'
      #9#9#9#9'}'
      #9#9#9'});'
      #9#9'} else {'
      #9#9#9'win = getWindow( elem );'
      ''
      #9#9#9'// Return the scroll offset'
      
        #9#9#9'return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" ' +
        ': "pageXOffset" ] :'
      
        #9#9#9#9'jQuery.support.boxModel && win.document.documentElement[ met' +
        'hod ] ||'
      #9#9#9#9#9'win.document.body[ method ] :'
      #9#9#9#9'elem[ method ];'
      #9#9'}'
      #9'};'
      '});'
      ''
      'function getWindow( elem ) {'
      #9'return jQuery.isWindow( elem ) ?'
      #9#9'elem :'
      #9#9'elem.nodeType === 9 ?'
      #9#9#9'elem.defaultView || elem.parentWindow :'
      #9#9#9'false;'
      '}'
      ''
      ''
      ''
      ''
      
        '// Create innerHeight, innerWidth, outerHeight and outerWidth me' +
        'thods'
      'jQuery.each([ "Height", "Width" ], function( i, name ) {'
      ''
      #9'var type = name.toLowerCase();'
      ''
      #9'// innerHeight and innerWidth'
      #9'jQuery.fn["inner" + name] = function() {'
      #9#9'return this[0] ?'
      #9#9#9'parseFloat( jQuery.css( this[0], type, "padding" ) ) :'
      #9#9#9'null;'
      #9'};'
      ''
      #9'// outerHeight and outerWidth'
      #9'jQuery.fn["outer" + name] = function( margin ) {'
      #9#9'return this[0] ?'
      
        #9#9#9'parseFloat( jQuery.css( this[0], type, margin ? "margin" : "b' +
        'order" ) ) :'
      #9#9#9'null;'
      #9'};'
      ''
      #9'jQuery.fn[ type ] = function( size ) {'
      #9#9'// Get window width or height'
      #9#9'var elem = this[0];'
      #9#9'if ( !elem ) {'
      #9#9#9'return size == null ? null : this;'
      #9#9'}'
      #9#9
      #9#9'if ( jQuery.isFunction( size ) ) {'
      #9#9#9'return this.each(function( i ) {'
      #9#9#9#9'var self = jQuery( this );'
      #9#9#9#9'self[ type ]( size.call( this, i, self[ type ]() ) );'
      #9#9#9'});'
      #9#9'}'
      ''
      #9#9'if ( jQuery.isWindow( elem ) ) {'
      
        #9#9#9'// Everyone else use document.documentElement or document.bod' +
        'y depending on Quirks vs Standards mode'
      
        #9#9#9'return elem.document.compatMode === "CSS1Compat" && elem.docu' +
        'ment.documentElement[ "client" + name ] ||'
      #9#9#9#9'elem.document.body[ "client" + name ];'
      ''
      #9#9'// Get document width or height'
      #9#9'} else if ( elem.nodeType === 9 ) {'
      
        #9#9#9'// Either scroll[Width/Height] or offset[Width/Height], which' +
        'ever is greater'
      #9#9#9'return Math.max('
      #9#9#9#9'elem.documentElement["client" + name],'
      
        #9#9#9#9'elem.body["scroll" + name], elem.documentElement["scroll" + ' +
        'name],'
      
        #9#9#9#9'elem.body["offset" + name], elem.documentElement["offset" + ' +
        'name]'
      #9#9#9');'
      ''
      #9#9'// Get or set width or height on the element'
      #9#9'} else if ( size === undefined ) {'
      #9#9#9'var orig = jQuery.css( elem, type ),'
      #9#9#9#9'ret = parseFloat( orig );'
      ''
      #9#9#9'return jQuery.isNaN( ret ) ? orig : ret;'
      ''
      
        #9#9'// Set the width or height on the element (default to pixels i' +
        'f value is unitless)'
      #9#9'} else {'
      
        #9#9#9'return this.css( type, typeof size === "string" ? size : size' +
        ' + "px" );'
      #9#9'}'
      #9'};'
      ''
      '});'
      ''
      ''
      '})(window);'
      ''
      '')
    TabOrder = 0
    WordWrap = False
  end
  object jquery_fixer: TMemo
    Left = 72
    Top = 152
    Width = 185
    Height = 89
    Lines.Strings = (
      ' /**'
      ' * jQuery.fixer - Scrolling Table With Fixed Rows And Columns'
      ' * '
      
        ' * Copyright (c) 2011, Anand Inumpudi Licensed under the MIT lic' +
        'ense'
      
        ' * http://creativecommons.org/licenses/MIT/ Version: 1.41 Date: ' +
        '2011/01/30'
      ' */'
      '(function($) {'
      #9'//'
      #9'// plugin definition'
      #9'//'
      #9'$.fn.fixer = function(options) {'
      #9#9'var opts = $.extend({}, $.fn.fixer.defaults, options);'
      #9#9'return $(this)'
      #9#9#9#9'.each('
      #9#9#9#9#9#9'function() {'
      #9#9#9#9#9#9#9'// only process tables'
      #9#9#9#9#9#9#9'if ($(this).get(0).tagName != "TABLE")'
      #9#9#9#9#9#9#9#9'return;'
      #9#9#9#9#9#9#9'// load options'
      #9#9#9#9#9#9#9'var fixedrows = Math.round(opts.fixedrows);'
      #9#9#9#9#9#9#9'var fixedcols = Math.round(opts.fixedcols);'
      #9#9#9#9#9#9#9'var height = Math.round(opts.height);'
      #9#9#9#9#9#9#9'var width = Math.round(opts.width);'
      #9#9#9#9#9#9#9'//get scroll bar width'
      #9#9#9#9#9#9#9'var sbwidth = $.getScrollbarWidth();'#9#9#9#9#9#9#9#9
      #9#9#9#9#9#9#9'// get the table into a local variable'
      #9#9#9#9#9#9#9'var fixertable = $(this);'
      #9#9#9#9#9#9#9'// remove table padding and margin'
      #9#9#9#9#9#9#9'fixertable.removeClass('#39'clearfix'#39');'
      #9#9#9#9#9#9#9'fixertable.css('#39'margin'#39', '#39'0'#39').css('#39'padding'#39', '#39'0'#39');'
      #9#9#9#9#9#9#9'// create a shell to use for the subtables'
      #9#9#9#9#9#9#9'fixershell = $(this.cloneNode(false));'
      #9#9#9#9#9#9#9'// get height and width of table and width of parent'
      #9#9#9#9#9#9#9'var tableheight = fixertable.outerHeight();'
      #9#9#9#9#9#9#9'var tablewidth = fixertable.outerWidth();'
      #9#9#9#9#9#9#9'var parentwidth = fixertable.parent().width();'
      #9#9#9#9#9#9#9'//use evenIfHidden if the table is hidden'
      #9#9#9#9#9#9#9'if (fixertable.is(":hidden")) {'
      #9#9#9#9#9#9#9#9'fixertable'
      #9#9#9#9#9#9#9#9#9#9'.evenIfHidden(function(element) {'
      #9#9#9#9#9#9#9#9#9#9#9'tableheight = element.outerHeight();'
      #9#9#9#9#9#9#9#9#9#9#9'tablewidth = element.outerWidth();'
      #9#9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9#9'fixertable.parent().evenIfHidden('
      #9#9#9#9#9#9#9#9#9#9'function(element) {'
      #9#9#9#9#9#9#9#9#9#9#9'parentwidth = element.width();'
      #9#9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// see if the user wants to deliberately set width'
      #9#9#9#9#9#9#9'var setwidth = false;'
      #9#9#9#9#9#9#9'if (width > 0)'
      #9#9#9#9#9#9#9#9'setwidth = true;'
      #9#9#9#9#9#9#9'else {'
      #9#9#9#9#9#9#9#9'// otherwise, in IE, use the parent'#39's explicit'
      #9#9#9#9#9#9#9#9'// width later'
      #9#9#9#9#9#9#9#9'width = parentwidth;'
      #9#9#9#9#9#9#9#9'if ($.browser.msie)'
      #9#9#9#9#9#9#9#9#9'setwidth = true;'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// get the row and column count'
      #9#9#9#9#9#9#9'var rows = $('#39'tr'#39', fixertable);'
      #9#9#9#9#9#9#9'var cols = $('#39'th,td'#39', rows[0]);'
      #9#9#9#9#9#9#9'var rowcount = rows.length;'
      #9#9#9#9#9#9#9'var colcount = cols.length;'
      #9#9#9#9#9#9#9'// if table has no content, nothing to do'
      #9#9#9#9#9#9#9'if (rowcount == 0 || colcount == 0)'
      #9#9#9#9#9#9#9#9'return;'
      #9#9#9#9#9#9#9'// flags to indicate if rows are to be fixed,'
      #9#9#9#9#9#9#9'// columns are to be fixed, or both'
      #9#9#9#9#9#9#9'var fixrows = false;'
      #9#9#9#9#9#9#9'var fixcols = false;'
      #9#9#9#9#9#9#9'if (fixedrows > 0 && fixedrows < rowcount)'
      #9#9#9#9#9#9#9#9'fixrows = true;'
      #9#9#9#9#9#9#9'else'
      #9#9#9#9#9#9#9#9'fixedrows = 0;'
      #9#9#9#9#9#9#9'if (fixedcols > 0 && fixedcols < colcount)'
      #9#9#9#9#9#9#9#9'fixcols = true;'
      #9#9#9#9#9#9#9'else'
      #9#9#9#9#9#9#9#9'fixedcols = 0;'
      #9#9#9#9#9#9#9'// get the heights of rows and widths of columns'
      #9#9#9#9#9#9#9'var heights = new Array();'
      #9#9#9#9#9#9#9'var outerheights = new Array();'
      #9#9#9#9#9#9#9'var widths = new Array();'
      #9#9#9#9#9#9#9'rows.each(function() {'
      #9#9#9#9#9#9#9#9#9#9'if ($(this).is(":hidden"))'
      #9#9#9#9#9#9#9#9#9#9#9'$(this).evenIfHidden('
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'function(element) {'
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'heights.push(element.height());'
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'outerheights.push(element.outerHeight());'
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9#9#9#9'else {'
      #9#9#9#9#9#9#9#9#9#9#9'outerheights.push($(this).outerHeight());'
      #9#9#9#9#9#9#9#9#9#9#9'heights.push($(this).height());'
      #9#9#9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'cols.each(function() {'
      #9#9#9#9#9#9#9#9#9#9'if ($(this).is(":hidden"))'
      #9#9#9#9#9#9#9#9#9#9#9'$(this).evenIfHidden('
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'function(element) {'
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'widths.push(element.outerWidth());'
      #9#9#9#9#9#9#9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9#9#9#9'else'
      #9#9#9#9#9#9#9#9#9#9#9'widths.push($(this).outerWidth());'
      #9#9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'// calculate the height of the fixed rows and width'
      #9#9#9#9#9#9#9'// of the fixed columns'
      #9#9#9#9#9#9#9'var fixedheight = 0;'
      #9#9#9#9#9#9#9'var fixedwidth = 0;'
      #9#9#9#9#9#9#9'for ( var i = 0; i < fixedrows; i++)'
      #9#9#9#9#9#9#9#9'fixedheight = fixedheight + outerheights[i];'
      #9#9#9#9#9#9#9'for ( var i = 0; i < fixedcols; i++)'
      #9#9#9#9#9#9#9#9'fixedwidth = fixedwidth + widths[i];'
      #9#9#9#9#9#9#9'// don'#39't fix rows/cols if the fixed table'
      #9#9#9#9#9#9#9'// doesn'#39't have'
      #9#9#9#9#9#9#9'// enough viewing area or has too much area'
      #9#9#9#9#9#9#9'if (fixedheight > height || tableheight <= height) {'
      #9#9#9#9#9#9#9#9'fixrows = false;'
      #9#9#9#9#9#9#9#9'fixedrows = 0;'
      #9#9#9#9#9#9#9#9'fixedheight = 0;'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'if (fixedwidth > width || tablewidth <= width) {'
      #9#9#9#9#9#9#9#9'fixcols = false;'
      #9#9#9#9#9#9#9#9'fixedcols = 0;'
      #9#9#9#9#9#9#9#9'fixedwidth = 0;'
      #9#9#9#9#9#9#9'}'
      
        #9#9#9#9#9#9#9'//return without doing anything if the entire table fits ' +
        'within the area'
      #9#9#9#9#9#9#9'if (tableheight < height && tablewidth < width)'
      #9#9#9#9#9#9#9#9'return;'
      #9#9#9#9#9#9#9'// remove table from DOM to speed up operations'
      #9#9#9#9#9#9#9'var placeholder = $('#39'<table></table>'#39');'
      #9#9#9#9#9#9#9'fixertable.replaceWith(placeholder);'
      #9#9#9#9#9#9#9'// if cols will be fixed set explicit heights'
      #9#9#9#9#9#9#9'if (fixcols)'
      #9#9#9#9#9#9#9#9'rows.each(function(i, e) {'
      #9#9#9#9#9#9#9#9#9'$(this).height(heights[i]);'
      #9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'// create the four tables'
      #9#9#9#9#9#9#9'var toplefttable;'
      #9#9#9#9#9#9#9'var toprighttable;'
      #9#9#9#9#9#9#9'var bottomlefttable;'
      #9#9#9#9#9#9#9'var bottomrighttable = fixertable;'
      #9#9#9#9#9#9#9'if (fixrows) {'
      #9#9#9#9#9#9#9#9'toprighttable = fixershell.clone();'
      #9#9#9#9#9#9#9#9'toprighttable.append(rows.slice(0, fixedrows));'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'if (fixcols) {'
      #9#9#9#9#9#9#9#9'if (fixrows) {'
      #9#9#9#9#9#9#9#9#9'toplefttable = fixershell.clone();'
      #9#9#9#9#9#9#9#9#9'for (i = 0; i < fixedrows; i++) {'
      #9#9#9#9#9#9#9#9#9#9'row = $(rows[i].cloneNode(false));'
      #9#9#9#9#9#9#9#9#9#9'row.append($('#39'td,th'#39', rows[i]).slice(0,'
      #9#9#9#9#9#9#9#9#9#9#9#9'fixedcols));'
      #9#9#9#9#9#9#9#9#9#9'toplefttable.append(row);'
      #9#9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9#9'bottomlefttable = fixershell.clone();'
      #9#9#9#9#9#9#9#9'for (i = fixedrows; i < rowcount; i++) {'
      #9#9#9#9#9#9#9#9#9'row = $(rows[i].cloneNode(false));'
      #9#9#9#9#9#9#9#9#9'row.append($('#39'td,th'#39', rows[i]).slice(0,'
      #9#9#9#9#9#9#9#9#9#9#9'fixedcols));'
      #9#9#9#9#9#9#9#9#9'bottomlefttable.append(row);'
      #9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'}'
      
        #9#9#9#9#9#9#9'//set column widths in fixed layout if rows are being fix' +
        'ed'
      #9#9#9#9#9#9#9'if (fixrows) {'
      
        #9#9#9#9#9#9#9#9#9'toprighttable.css('#39'box-sizing'#39','#39'border-box'#39').css("table' +
        '-layout","fixed");'
      
        #9#9#9#9#9#9#9#9#9'bottomrighttable.css('#39'box-sizing'#39','#39'border-box'#39').css("ta' +
        'ble-layout","fixed");'
      #9#9#9#9#9#9#9#9#9'var colgroup = $("<colgroup></colgroup>");'
      #9#9#9#9#9#9#9#9#9'for (i=fixedcols;i<colcount;i++)'
      
        #9#9#9#9#9#9#9#9#9#9'colgroup.append($("<col></col>").css("width",widths[i]' +
        '));'
      #9#9#9#9#9#9#9#9#9'toprighttable.prepend(colgroup);'
      #9#9#9#9#9#9#9#9#9'bottomrighttable.prepend(colgroup.clone());'
      #9#9#9#9#9#9#9#9#9'if (fixcols) {'
      #9#9#9#9#9#9#9#9#9#9'var colgroup = $("<colgroup></colgroup>");'
      
        #9#9#9#9#9#9#9#9#9#9'toplefttable.css('#39'box-sizing'#39','#39'border-box'#39').css("table' +
        '-layout","fixed");'
      
        #9#9#9#9#9#9#9#9#9#9'bottomlefttable.css('#39'box-sizing'#39','#39'border-box'#39').css("ta' +
        'ble-layout","fixed");'
      #9#9#9#9#9#9#9#9#9#9'for (i=0;i<fixedcols;i++)'
      
        #9#9#9#9#9#9#9#9#9#9#9'colgroup.append($("<col></col>").css("width",widths[i' +
        ']));'
      #9#9#9#9#9#9#9#9#9#9'toplefttable.prepend(colgroup);'
      #9#9#9#9#9#9#9#9#9#9'bottomlefttable.prepend(colgroup.clone());'
      #9#9#9#9#9#9#9#9#9#9'toplefttable.css("width",fixedwidth+1);'
      #9#9#9#9#9#9#9#9#9#9'bottomlefttable.css("width",fixedwidth+1);'
      #9#9#9#9#9#9#9#9#9#9'toprighttable.css("width",tablewidth-fixedwidth+1);'
      #9#9#9#9#9#9#9#9#9#9'bottomrighttable.css("width",tablewidth-fixedwidth+1);'
      #9#9#9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9#9#9'else {'
      #9#9#9#9#9#9#9#9#9#9'toprighttable.css("width",tablewidth);'
      #9#9#9#9#9#9#9#9#9#9'bottomrighttable.css("width",tablewidth);'
      #9#9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// individually wrap the tables and then put them in'
      
        #9#9#9#9#9#9#9'// a parent wrapper div. Add a 1px spacer in the beginnin' +
        'g to fix an IE7 standards  mode issue'
      #9#9#9#9#9#9#9'var wrapper = $("<div></div>");'
      #9#9#9#9#9#9#9'// wrap the top left table if it exists'
      #9#9#9#9#9#9#9'if (fixrows && fixcols) {'
      #9#9#9#9#9#9#9#9'var topleft = $("<div></div>");'
      #9#9#9#9#9#9#9#9'topleft.css("float", "left").css("overflow",'
      #9#9#9#9#9#9#9#9#9#9'"hidden").css('#39'margin'#39', '#39'0'#39').css('#39'padding'#39', '#39'0'#39');'
      #9#9#9#9#9#9#9#9'topleft.append(toplefttable);'
      #9#9#9#9#9#9#9#9'wrapper.append(topleft);'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// wrap the top right table if it exists'
      #9#9#9#9#9#9#9'if (fixrows) {'
      #9#9#9#9#9#9#9#9'var topright = $("<div></div>");'
      
        #9#9#9#9#9#9#9#9'topright.css("overflow", "hidden").css('#39'margin'#39', '#39'0'#39').cs' +
        's('#39'padding'#39', '#39'0'#39');'
      #9#9#9#9#9#9#9#9'if ($.browser.msie)'
      #9#9#9#9#9#9#9#9#9'topright.css("float", "left");'
      #9#9#9#9#9#9#9#9'topright.append(toprighttable);'
      #9#9#9#9#9#9#9#9'wrapper.append(topright);'
      
        #9#9#9#9#9#9#9#9'wrapper.append($("<div></div>").css("clear","both").css(' +
        #39'margin'#39', '#39'0'#39').css('#39'padding'#39', '#39'0'#39'));'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// wrap the bottom left table if it exists'
      #9#9#9#9#9#9#9'if (fixcols) {'
      #9#9#9#9#9#9#9#9'var bottomleft = $("<div></div>");'
      
        #9#9#9#9#9#9#9#9'bottomleft.css("float", "left").css("overflow","hidden")' +
        '.css('#39'margin'#39', '#39'0'#39').css('
      #9#9#9#9#9#9#9#9#9#9#39'padding'#39', '#39'0'#39');'
      #9#9#9#9#9#9#9#9'bottomleft.append(bottomlefttable);'
      #9#9#9#9#9#9#9#9'wrapper.append(bottomleft);'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// wrap the bottom right table; always exists'
      #9#9#9#9#9#9#9'var bottomright = $("<div></div>");'
      
        #9#9#9#9#9#9#9'bottomright.css("overflow", "hidden").css('#39'margin'#39', '#39'0'#39').' +
        'css('#39'padding'#39', '#39'0'#39');'
      #9#9#9#9#9#9#9'if (!setwidth || tablewidth>width)'
      #9#9#9#9#9#9#9#9'bottomright.css("overflow-x", "scroll");'
      #9#9#9#9#9#9#9'if (tableheight>height) {'
      #9#9#9#9#9#9#9#9'bottomright.css("overflow-y", "scroll");'
      #9#9#9#9#9#9#9#9'if (!setwidth && fixrows) {'
      #9#9#9#9#9#9#9#9#9'topright.css("overflow-y", "scroll");'
      #9#9#9#9#9#9#9#9#9'if (fixedheight< (2*sbwidth)) {'
      
        #9#9#9#9#9#9#9#9#9#9'topright.prepend($("<div></div>").css("height",2*sbwid' +
        'th-fixedheight));'
      #9#9#9#9#9#9#9#9#9#9'if (fixcols)'
      
        #9#9#9#9#9#9#9#9#9#9#9'topleft.prepend($("<div></div>").css("height",2*sbwid' +
        'th-fixedheight));'
      #9#9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'if ($.browser.msie)'
      #9#9#9#9#9#9#9#9'bottomright.css("float", "left");'
      #9#9#9#9#9#9#9'bottomright.append(bottomrighttable);'
      #9#9#9#9#9#9#9'wrapper.append(bottomright);'
      #9#9#9#9#9#9#9'wrapper.append($("<div></div>").css("clear","both"));'
      #9#9#9#9#9#9#9'// constrain the heights of bottom tables based on'
      #9#9#9#9#9#9#9'// options'
      #9#9#9#9#9#9#9'bottomright.css("height", height - fixedheight);'
      #9#9#9#9#9#9#9'if (fixcols)'
      #9#9#9#9#9#9#9#9'bottomleft.css("height", height'
      #9#9#9#9#9#9#9#9#9#9'- fixedheight-sbwidth);'
      #9#9#9#9#9#9#9'if (setwidth) {'
      #9#9#9#9#9#9#9#9'// if a width is known,'
      #9#9#9#9#9#9#9#9'// be explicit with the widths on right wrapper divs'
      #9#9#9#9#9#9#9#9'// TODO: use actual table border thickness instad of +1'
      #9#9#9#9#9#9#9#9'bottomright.css("width", width - fixedwidth);'
      #9#9#9#9#9#9#9#9'if (fixrows)'
      #9#9#9#9#9#9#9#9#9#9'topright.css("width", width'#9'- fixedwidth - sbwidth);'
      #9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'// synchronize scrolling'
      #9#9#9#9#9#9#9'if (fixrows && fixcols)'
      #9#9#9#9#9#9#9#9'bottomright.scroll(function() {'
      #9#9#9#9#9#9#9#9#9'topright.scrollLeft(bottomright'
      #9#9#9#9#9#9#9#9#9#9#9'.scrollLeft());'
      #9#9#9#9#9#9#9#9#9'bottomleft.scrollTop(bottomright'
      #9#9#9#9#9#9#9#9#9#9#9'.scrollTop());'
      #9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'else if (fixcols)'
      #9#9#9#9#9#9#9#9'bottomright.scroll(function() {'
      #9#9#9#9#9#9#9#9#9'bottomleft.scrollTop(bottomright'
      #9#9#9#9#9#9#9#9#9#9#9'.scrollTop());'
      #9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'else if (fixrows)'
      #9#9#9#9#9#9#9#9'bottomright.scroll(function() {'
      #9#9#9#9#9#9#9#9#9'topright.scrollLeft(bottomright'
      #9#9#9#9#9#9#9#9#9#9#9'.scrollLeft());'
      #9#9#9#9#9#9#9#9'});'
      #9#9#9#9#9#9#9'// finally, add the fixed tables back to the DOM'
      #9#9#9#9#9#9#9'placeholder.replaceWith(wrapper);'
      
        #9#9#9#9#9#9#9'// and adjust width of top level wrapper so that there is' +
        ' enough space'
      #9#9#9#9#9#9#9'// for left and right divs to be inline'
      #9#9#9#9#9#9#9'if (fixcols && setwidth)'
      #9#9#9#9#9#9#9#9'if (wrapper.is(":hidden")) {'
      #9#9#9#9#9#9#9#9#9'var bottomleftouterwidth;'
      #9#9#9#9#9#9#9#9#9'var bottomrightouterwidth;'
      
        #9#9#9#9#9#9#9#9#9'bottomlefttable.evenIfHidden(function(element){bottomle' +
        'ftouterwidth=bottomleft.outerWidth();});'
      
        #9#9#9#9#9#9#9#9#9'bottomrighttable.evenIfHidden(function(element){bottomr' +
        'ightouterwidth=bottomright.outerWidth();});'
      
        #9#9#9#9#9#9#9#9#9'wrapper.css('#39'width'#39',bottomleftouterwidth+bottomrightout' +
        'erwidth);'
      #9#9#9#9#9#9#9#9'}'
      #9#9#9#9#9#9#9'else'
      
        #9#9#9#9#9#9#9#9'wrapper.css('#39'width'#39',bottomleft.outerWidth()+bottomright.' +
        'outerWidth());'
      #9#9#9#9#9#9'});'
      #9'};'
      ''
      #9'$.fn.fixer.defaults = {'
      #9#9'width : 0,'
      #9#9'height : 500,'
      #9#9'fixedrows : 1,'
      #9#9'fixedcols : 1'
      #9'};'
      '})(jQuery);'
      ''
      '/**'
      
        ' * jQuery.evenIfHidden - get layout information of hidden DOM el' +
        'ements'
      ' * http://petr.illodavi.de/jquery-evenifhidden'
      ' *'
      ' * Copyright (c) 2010, Davide Petrillo'
      
        ' * Licensed under the MIT license http://creativecommons.org/lic' +
        'enses/MIT/'
      ' *'
      ' * Version: 1.0'
      ' * Date:    2010/04/22'
      ' *'
      ' **/ '
      ''
      'jQuery.fn.evenIfHidden = function( callback ) {'
      ''
      '  return this.each( function() {'
      '    var self = $(this);'
      '    var styleBackups = [];'
      '    '
      
        '    var hiddenElements = self.parents().andSelf().filter('#39':hidde' +
        'n'#39');'
      '    '
      '    if ( ! hiddenElements.length ) {'
      '      callback( self );'
      '      return true; //continue the loop'
      '    }'
      ''
      '    hiddenElements.each( function() {'
      '      var style = $(this).attr('#39'style'#39');'
      '      style = typeof style == '#39'undefined'#39'? '#39#39': style;'
      '      styleBackups.push( style );'
      #9'  //start of modified code'
      #9'  var display = '#39'block'#39';'
      #9'  var tag = $(this)[0].tagName;'
      #9'  if (tag=='#39'TABLE'#39' || tag=='#39'TBODY'#39')'
      #9#9'  display = '#39'table'#39';'
      #9'  else if (tag=='#39'TR'#39')'
      #9#9'  display = '#39'table-row'#39';'
      #9'  else if (tag=='#39'TH'#39' || tag=='#39'TD'#39')'
      #9#9'  display = '#39'table-cell'#39';'
      
        '      $(this).attr( '#39'style'#39', style + '#39' display: '#39'+display+'#39' !imp' +
        'ortant;'#39' );'
      #9'  //end of modified code'
      '    });'
      '    '
      '    hiddenElements.eq(0).css( '#39'left'#39', -10000 );'
      ''
      '    callback(self);'
      ''
      '    hiddenElements.each( function() {'
      '      $(this).attr( '#39'style'#39', styleBackups.shift() );'
      '    });'
      ''
      '  });'
      '};'
      ''
      
        '/*! Copyright (c) 2008 Brandon Aaron (brandon.aaron@gmail.com ||' +
        ' http://brandonaaron.net)'
      
        ' * Dual licensed under the MIT (http://www.opensource.org/licens' +
        'es/mit-license.php) '
      
        ' * and GPL (http://www.opensource.org/licenses/gpl-license.php) ' +
        'licenses.'
      ' */'
      ''
      '/**'
      ' * Gets the width of the OS scrollbar'
      ' */'
      '(function($) {'
      #9'var scrollbarWidth = 0;'
      #9'$.getScrollbarWidth = function() {'
      #9#9'if ( !scrollbarWidth ) {'
      #9#9#9'if ( $.browser.msie ) {'
      
        #9#9#9#9'var $textarea1 = $('#39'<textarea cols="10" rows="2"></textarea>' +
        #39')'
      
        #9#9#9#9#9#9'.css({ position: '#39'absolute'#39', top: -1000, left: -1000 }).ap' +
        'pendTo('#39'body'#39'),'
      
        #9#9#9#9#9'$textarea2 = $('#39'<textarea cols="10" rows="2" style="overflo' +
        'w: hidden;"></textarea>'#39')'
      
        #9#9#9#9#9#9'.css({ position: '#39'absolute'#39', top: -1000, left: -1000 }).ap' +
        'pendTo('#39'body'#39');'
      #9#9#9#9'scrollbarWidth = $textarea1.width() - $textarea2.width();'
      #9#9#9#9'$textarea1.add($textarea2).remove();'
      #9#9#9'} else {'
      #9#9#9#9'var $div = $('#39'<div />'#39')'
      
        #9#9#9#9#9'.css({ width: 100, height: 100, overflow: '#39'auto'#39', position:' +
        ' '#39'absolute'#39', top: -1000, left: -1000 })'
      #9#9#9#9#9'.prependTo('#39'body'#39').append('#39'<div />'#39').find('#39'div'#39')'
      #9#9#9#9#9#9'.css({ width: '#39'100%'#39', height: 200 });'
      #9#9#9#9'scrollbarWidth = 100 - $div.width();'
      #9#9#9#9'$div.parent().remove();'
      #9#9#9'}'
      #9#9'}'
      #9#9'return scrollbarWidth;'
      #9'};'
      '})(jQuery);'
      '')
    TabOrder = 1
    WordWrap = False
  end
end
